/* There is no main */

abstract class Student
{
	protected final static int NUM_TESTS = 3;
	protected String name;
	protected int[] test;
	protected String courseGrade;

	public Student()
	{
		this("No Name");
	}

	public Student(String name)
	{
		this.name = name;
		test = new int[NUM_TESTS];
		courseGrade = "****";
	}

	abstract void computeCourseGrade();

	public String getCourseGrade() 
	{
		return courseGrade;
	}

	public String getName()
	{
		return name;
	}

	public int getTestScore(int testNumber)
	{
		return test[testNumber-1];
	}

	public void setName(String newName)
	{
		name=newName;
	}

	public void setTestScore(int testNumber, int score)
	{
		test[testNumber-1] = score;
	}
}

class GraduateStudent extends Student
{
	public GraduateStudent()
	{
		super();
	}

	public GraduateStudent(String name)
	{
		super(name);
	}

	public void computeCourseGrade()
	{
		int total=0;

		for (int i = 0; i < NUM_TESTS ;i++)
			total += test[i];

		if (total/NUM_TESTS > 80)
			courseGrade = "Pass";
		else
			courseGrade = "No Pass";
	}
}

class UndergraduateStudent extends Student
{
	public UndergraduateStudent()
	{
		super();
	}

	public UndergraduateStudent(String name)
	{
		this.name = name;
		test = new int[NUM_TESTS];
		courseGrade = "****";
	}

	public void computeCourseGrade()
	{
		int total=0;

		for (int i = 0; i < NUM_TESTS; i++)
			total += test[i];

		if (total/NUM_TESTS > 70)
			courseGrade = "Pass";
		else
			courseGrade = "No Pass";
	}
}
