public int Pop()
        {
            MyStack last = GetLastStack();

            if (last == null)
            {
                throw new NullReferenceException();
            }
            int item = last.Pop();

            if (last.size == 0)
            {
                stacks.Remove(stacks[stacks.Count - 1]);
            }
            return(item);
        }
        public int LeftShift(int index, bool removeTop)
        {
            MyStack stack = stacks[index];
            int     removed_item;

            removed_item = (removeTop) ? stack.Pop() : stack.RemoveBottom();
            if (stack.IsEmpty())
            {
                stacks.Remove(stacks[index]);
            }
            else if (stacks.Count > index + 1)
            {
                int item = LeftShift(index + 1, false);
                stack.Push(item);
            }
            return(removed_item);
        }