class Stack
{
	PointI [] theStack;
	int top;
	
	Stack() { 
		top=0; 
		theStack = new PointI[400];
	};

	boolean IsEmpty(){
		return top==0;
	};
	
    void push(PointI P){
    //	assert (top < 399 and top >= 0);
    	theStack[top] = P;
   		top++;
   	};
   	
   	PointI pop(){
   	//	assert (top > 0);
   		top--;
   		return theStack[top];
   	};

};

// no error checking