class Stack
{
        Object buffer [];
        int counter;
        Stack()
        {
        buffer = new Object[10];
        counter = 0;

        }
        Stack(int stacksize)
        {
        buffer = new Object[stacksize];
        counter = 0;

        }

        void print()
        {
        int i;
        System.out.println("Counter = " + counter);
        for (i = 0; i < counter; i++)
                {
                System.out.println("Buffer[" + i + "] is " +buffer[i].toString());

                }

        }

        void push (Object o)
        {
        if (!is_full())
                buffer[counter++] = o;
        }

        Object pop() throws StackEmptyException
        {
        if (!is_empty())
                return buffer[--counter];
        throw new StackEmptyException("Stack Empty");

        }

        boolean is_empty()
        {
        if (counter == 0)
                return true;
        return false;

        }

        boolean is_full()
        {
        if (counter == (buffer.length))
                return true;
        return false;
                

        }

}
