class Stack<E> {      // caution: no error checking!!
	
		E[] stack;
	
		int top;
	
	
		Stack(int cap)    { stack = new E[cap]; }
	
		void init()       { top = -1; }
	
		E pop()           { return stack[top--]; }
	
		void push(E item) { stack[++top] = item; }
	
		boolean isEmpty() { return top == -1; }
	
		E top()           { return stack[top]; }
	
	}