public class Faculty  {
	static int arrcounter=0;
	int counter=0; 
	int studentNum=0;
	StudentImpl  students[];
	Faculty(int num){
		studentNum=num;
		students=new StudentImpl[studentNum];
	}
	Faculty(StudentImpl []studentsarr){
		this.students=studentsarr;
		studentNum=studentsarr.length;
	}
	class  TravelerImpl implements Traveler{
		TravelerImpl(){};
		public Object Current(){ 
			return students[counter];		
		}
		public boolean end(){
			if (counter==studentNum)
				return true;
			else
				return false;
		}
		public void next(){
			if(counter<20){counter+=1;}
		}
	}
	public Traveler GetTraveler(){
		TravelerImpl t=new TravelerImpl();
		return t;
	}
	public void add(String Name,String Address,int MajorGrade,int OtherGrade){

		students[arrcounter++]=new StudentImpl( Name, Address, MajorGrade, OtherGrade);
	}
	public void add(String Name,String Address,int MajorGrade,int OtherGrade,String major){
		students[arrcounter++]=new  MasterStudent(Name, Address, MajorGrade, OtherGrade, major);
	}
}