import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

/**
 * Lesson7A あなたの課題は、あるクラスの数学の成績を付けるプログラムを作成することです。
 *
 * プログラムは複数の学生のテストの点数を読み込みます。
 *
 * テストの点数は、中間試験の点数 m、期末試験の点数 f、再試験の点数 r で構成されています。
 *
 * 中間試験と期末試験は 50 点満点（m, f ? 50）、再試験は 100 点満点 （r ? 100）です。
 *
 * 試験を受けていない場合は点数を -1 とします。
 *
 * 以下の手順で成績が付けられます： ?中間試験、期末試験のいずれかを欠席した場合成績は F。 ?中間試験と期末試験の合計点数が 80 以上ならば成績は A
 * 。 ?中間試験と期末試験の合計点数が 65 以上 80 未満ならば成績は B。 ?中間試験と期末試験の合計点数が 50 以上 65 未満ならば成績は C。
 * ?中間試験と期末試験の合計点数が 30 以上 50 未満ならば成績は D。 ただし、再試験の点数が 50 以上ならば成績は C。
 * ?中間試験と期末試験の合計点数が 30 未満ならば成績は F。
 *
 * @author Internship
 *
 */
public class Main{

	/**
	 * プログラムのエントリポイント
	 *
	 * @param args
	 */
	public static void main(String[] args) {

		// 答え
		ArrayList<Character> chaAnswer = new ArrayList<Character>();

		//答えがいくつあるかカウント
		int intAnwer = 0;

		// 1列づつ読み込む
		try {
			BufferedReader insBR = new BufferedReader(
					new InputStreamReader(System.in));


			while (true) {
				String strLine = insBR.readLine();

				//終了条件
				if(strLine.equals("-1 -1 -1")) {
					break;
				}

				// ばらけさせる
				String[] strAryLine = strLine.split(" ");

				// int型にキャスト
				// 中間テスト
				int IntermediateTest = Integer.parseInt(strAryLine[0]);

				// 期末テスト
				int intYearEndTest = Integer.parseInt(strAryLine[1]);

				// 追試
				int intAdditionalTest = Integer.parseInt(strAryLine[2]);

				// 答えのストック　A?F以外で初期化
				char chaAnswerStock = 'G';

				//-1は受けてないので中間テストと期末テストは0点とする
				if(IntermediateTest == -1) {
					intYearEndTest = 0;
				}

				if(intYearEndTest == -1) {
					IntermediateTest = 0;
				}

				// 成績の判断
				if (80 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'A';
				} else if (65 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'B';
				} else if (50 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'C';
				} else if (30 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'D';

					if (50 <= intAdditionalTest) {
						chaAnswerStock = 'C';
					}
				} else {
					chaAnswerStock = 'F';
				}
				chaAnswer.add(chaAnswerStock);
				intAnwer++;
			}

			// 出力
			for(int i = 0; i < intAnwer; i++) {
				System.out.println(chaAnswer.get(i));
			}

		} catch (IOException e) {
			System.out.println(e);
		} catch (NumberFormatException e) {
			System.out.println("数字で入力して下さい");
		}
	}
} import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io import java.util.ArrayList; ArrayList java.util public class Main{

	/**
	 * プログラムのエントリポイント
	 *
	 * @param args
	 */
	public static void main(String[] args) {

		// 答え
		ArrayList<Character> chaAnswer = new ArrayList<Character>();

		//答えがいくつあるかカウント
		int intAnwer = 0;

		// 1列づつ読み込む
		try {
			BufferedReader insBR = new BufferedReader(
					new InputStreamReader(System.in));


			while (true) {
				String strLine = insBR.readLine();

				//終了条件
				if(strLine.equals("-1 -1 -1")) {
					break;
				}

				// ばらけさせる
				String[] strAryLine = strLine.split(" ");

				// int型にキャスト
				// 中間テスト
				int IntermediateTest = Integer.parseInt(strAryLine[0]);

				// 期末テスト
				int intYearEndTest = Integer.parseInt(strAryLine[1]);

				// 追試
				int intAdditionalTest = Integer.parseInt(strAryLine[2]);

				// 答えのストック　A?F以外で初期化
				char chaAnswerStock = 'G';

				//-1は受けてないので中間テストと期末テストは0点とする
				if(IntermediateTest == -1) {
					intYearEndTest = 0;
				}

				if(intYearEndTest == -1) {
					IntermediateTest = 0;
				}

				// 成績の判断
				if (80 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'A';
				} else if (65 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'B';
				} else if (50 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'C';
				} else if (30 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'D';

					if (50 <= intAdditionalTest) {
						chaAnswerStock = 'C';
					}
				} else {
					chaAnswerStock = 'F';
				}
				chaAnswer.add(chaAnswerStock);
				intAnwer++;
			}

			// 出力
			for(int i = 0; i < intAnwer; i++) {
				System.out.println(chaAnswer.get(i));
			}

		} catch (IOException e) {
			System.out.println(e);
		} catch (NumberFormatException e) {
			System.out.println("数字で入力して下さい");
		}
	}
} Main /**
	 * プログラムのエントリポイント
	 *
	 * @param args
	 */
	public static void main(String[] args) {

		// 答え
		ArrayList<Character> chaAnswer = new ArrayList<Character>();

		//答えがいくつあるかカウント
		int intAnwer = 0;

		// 1列づつ読み込む
		try {
			BufferedReader insBR = new BufferedReader(
					new InputStreamReader(System.in));


			while (true) {
				String strLine = insBR.readLine();

				//終了条件
				if(strLine.equals("-1 -1 -1")) {
					break;
				}

				// ばらけさせる
				String[] strAryLine = strLine.split(" ");

				// int型にキャスト
				// 中間テスト
				int IntermediateTest = Integer.parseInt(strAryLine[0]);

				// 期末テスト
				int intYearEndTest = Integer.parseInt(strAryLine[1]);

				// 追試
				int intAdditionalTest = Integer.parseInt(strAryLine[2]);

				// 答えのストック　A?F以外で初期化
				char chaAnswerStock = 'G';

				//-1は受けてないので中間テストと期末テストは0点とする
				if(IntermediateTest == -1) {
					intYearEndTest = 0;
				}

				if(intYearEndTest == -1) {
					IntermediateTest = 0;
				}

				// 成績の判断
				if (80 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'A';
				} else if (65 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'B';
				} else if (50 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'C';
				} else if (30 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'D';

					if (50 <= intAdditionalTest) {
						chaAnswerStock = 'C';
					}
				} else {
					chaAnswerStock = 'F';
				}
				chaAnswer.add(chaAnswerStock);
				intAnwer++;
			}

			// 出力
			for(int i = 0; i < intAnwer; i++) {
				System.out.println(chaAnswer.get(i));
			}

		} catch (IOException e) {
			System.out.println(e);
		} catch (NumberFormatException e) {
			System.out.println("数字で入力して下さい");
		}
	} main {

		// 答え
		ArrayList<Character> chaAnswer = new ArrayList<Character>();

		//答えがいくつあるかカウント
		int intAnwer = 0;

		// 1列づつ読み込む
		try {
			BufferedReader insBR = new BufferedReader(
					new InputStreamReader(System.in));


			while (true) {
				String strLine = insBR.readLine();

				//終了条件
				if(strLine.equals("-1 -1 -1")) {
					break;
				}

				// ばらけさせる
				String[] strAryLine = strLine.split(" ");

				// int型にキャスト
				// 中間テスト
				int IntermediateTest = Integer.parseInt(strAryLine[0]);

				// 期末テスト
				int intYearEndTest = Integer.parseInt(strAryLine[1]);

				// 追試
				int intAdditionalTest = Integer.parseInt(strAryLine[2]);

				// 答えのストック　A?F以外で初期化
				char chaAnswerStock = 'G';

				//-1は受けてないので中間テストと期末テストは0点とする
				if(IntermediateTest == -1) {
					intYearEndTest = 0;
				}

				if(intYearEndTest == -1) {
					IntermediateTest = 0;
				}

				// 成績の判断
				if (80 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'A';
				} else if (65 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'B';
				} else if (50 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'C';
				} else if (30 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'D';

					if (50 <= intAdditionalTest) {
						chaAnswerStock = 'C';
					}
				} else {
					chaAnswerStock = 'F';
				}
				chaAnswer.add(chaAnswerStock);
				intAnwer++;
			}

			// 出力
			for(int i = 0; i < intAnwer; i++) {
				System.out.println(chaAnswer.get(i));
			}

		} catch (IOException e) {
			System.out.println(e);
		} catch (NumberFormatException e) {
			System.out.println("数字で入力して下さい");
		}
	} ArrayList<Character> chaAnswer = new ArrayList<Character>(); chaAnswer new ArrayList<Character>() int intAnwer = 0; intAnwer 0 try {
			BufferedReader insBR = new BufferedReader(
					new InputStreamReader(System.in));


			while (true) {
				String strLine = insBR.readLine();

				//終了条件
				if(strLine.equals("-1 -1 -1")) {
					break;
				}

				// ばらけさせる
				String[] strAryLine = strLine.split(" ");

				// int型にキャスト
				// 中間テスト
				int IntermediateTest = Integer.parseInt(strAryLine[0]);

				// 期末テスト
				int intYearEndTest = Integer.parseInt(strAryLine[1]);

				// 追試
				int intAdditionalTest = Integer.parseInt(strAryLine[2]);

				// 答えのストック　A?F以外で初期化
				char chaAnswerStock = 'G';

				//-1は受けてないので中間テストと期末テストは0点とする
				if(IntermediateTest == -1) {
					intYearEndTest = 0;
				}

				if(intYearEndTest == -1) {
					IntermediateTest = 0;
				}

				// 成績の判断
				if (80 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'A';
				} else if (65 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'B';
				} else if (50 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'C';
				} else if (30 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'D';

					if (50 <= intAdditionalTest) {
						chaAnswerStock = 'C';
					}
				} else {
					chaAnswerStock = 'F';
				}
				chaAnswer.add(chaAnswerStock);
				intAnwer++;
			}

			// 出力
			for(int i = 0; i < intAnwer; i++) {
				System.out.println(chaAnswer.get(i));
			}

		} catch (IOException e) {
			System.out.println(e);
		} catch (NumberFormatException e) {
			System.out.println("数字で入力して下さい");
		} catch (IOException e) {
			System.out.println(e);
		} IOException e {
			System.out.println(e);
		} System.out.println(e) System.out.println System.out System System.out e catch (NumberFormatException e) {
			System.out.println("数字で入力して下さい");
		} NumberFormatException e {
			System.out.println("数字で入力して下さい");
		} System.out.println("数字で入力して下さい") System.out.println System.out System System.out "数字で入力して下さい" {
			BufferedReader insBR = new BufferedReader(
					new InputStreamReader(System.in));


			while (true) {
				String strLine = insBR.readLine();

				//終了条件
				if(strLine.equals("-1 -1 -1")) {
					break;
				}

				// ばらけさせる
				String[] strAryLine = strLine.split(" ");

				// int型にキャスト
				// 中間テスト
				int IntermediateTest = Integer.parseInt(strAryLine[0]);

				// 期末テスト
				int intYearEndTest = Integer.parseInt(strAryLine[1]);

				// 追試
				int intAdditionalTest = Integer.parseInt(strAryLine[2]);

				// 答えのストック　A?F以外で初期化
				char chaAnswerStock = 'G';

				//-1は受けてないので中間テストと期末テストは0点とする
				if(IntermediateTest == -1) {
					intYearEndTest = 0;
				}

				if(intYearEndTest == -1) {
					IntermediateTest = 0;
				}

				// 成績の判断
				if (80 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'A';
				} else if (65 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'B';
				} else if (50 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'C';
				} else if (30 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'D';

					if (50 <= intAdditionalTest) {
						chaAnswerStock = 'C';
					}
				} else {
					chaAnswerStock = 'F';
				}
				chaAnswer.add(chaAnswerStock);
				intAnwer++;
			}

			// 出力
			for(int i = 0; i < intAnwer; i++) {
				System.out.println(chaAnswer.get(i));
			}

		} BufferedReader insBR = new BufferedReader(
					new InputStreamReader(System.in)); insBR new BufferedReader(
					new InputStreamReader(System.in)) while (true) {
				String strLine = insBR.readLine();

				//終了条件
				if(strLine.equals("-1 -1 -1")) {
					break;
				}

				// ばらけさせる
				String[] strAryLine = strLine.split(" ");

				// int型にキャスト
				// 中間テスト
				int IntermediateTest = Integer.parseInt(strAryLine[0]);

				// 期末テスト
				int intYearEndTest = Integer.parseInt(strAryLine[1]);

				// 追試
				int intAdditionalTest = Integer.parseInt(strAryLine[2]);

				// 答えのストック　A?F以外で初期化
				char chaAnswerStock = 'G';

				//-1は受けてないので中間テストと期末テストは0点とする
				if(IntermediateTest == -1) {
					intYearEndTest = 0;
				}

				if(intYearEndTest == -1) {
					IntermediateTest = 0;
				}

				// 成績の判断
				if (80 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'A';
				} else if (65 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'B';
				} else if (50 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'C';
				} else if (30 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'D';

					if (50 <= intAdditionalTest) {
						chaAnswerStock = 'C';
					}
				} else {
					chaAnswerStock = 'F';
				}
				chaAnswer.add(chaAnswerStock);
				intAnwer++;
			} true {
				String strLine = insBR.readLine();

				//終了条件
				if(strLine.equals("-1 -1 -1")) {
					break;
				}

				// ばらけさせる
				String[] strAryLine = strLine.split(" ");

				// int型にキャスト
				// 中間テスト
				int IntermediateTest = Integer.parseInt(strAryLine[0]);

				// 期末テスト
				int intYearEndTest = Integer.parseInt(strAryLine[1]);

				// 追試
				int intAdditionalTest = Integer.parseInt(strAryLine[2]);

				// 答えのストック　A?F以外で初期化
				char chaAnswerStock = 'G';

				//-1は受けてないので中間テストと期末テストは0点とする
				if(IntermediateTest == -1) {
					intYearEndTest = 0;
				}

				if(intYearEndTest == -1) {
					IntermediateTest = 0;
				}

				// 成績の判断
				if (80 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'A';
				} else if (65 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'B';
				} else if (50 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'C';
				} else if (30 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'D';

					if (50 <= intAdditionalTest) {
						chaAnswerStock = 'C';
					}
				} else {
					chaAnswerStock = 'F';
				}
				chaAnswer.add(chaAnswerStock);
				intAnwer++;
			} String strLine = insBR.readLine(); strLine insBR.readLine() insBR.readLine insBR if(strLine.equals("-1 -1 -1")) {
					break;
				} strLine.equals("-1 -1 -1") strLine.equals strLine "-1 -1 -1" {
					break;
				} break; String[] strAryLine = strLine.split(" "); strAryLine strLine.split(" ") strLine.split strLine " " int IntermediateTest = Integer.parseInt(strAryLine[0]); IntermediateTest Integer.parseInt(strAryLine[0]) Integer.parseInt Integer strAryLine[0] strAryLine 0 int intYearEndTest = Integer.parseInt(strAryLine[1]); intYearEndTest Integer.parseInt(strAryLine[1]) Integer.parseInt Integer strAryLine[1] strAryLine 1 int intAdditionalTest = Integer.parseInt(strAryLine[2]); intAdditionalTest Integer.parseInt(strAryLine[2]) Integer.parseInt Integer strAryLine[2] strAryLine 2 char chaAnswerStock = 'G'; chaAnswerStock 'G' if(IntermediateTest == -1) {
					intYearEndTest = 0;
				} IntermediateTest == -1 IntermediateTest -1 1 {
					intYearEndTest = 0;
				} intYearEndTest = 0 intYearEndTest 0 if(intYearEndTest == -1) {
					IntermediateTest = 0;
				} intYearEndTest == -1 intYearEndTest -1 1 {
					IntermediateTest = 0;
				} IntermediateTest = 0 IntermediateTest 0 if (80 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'A';
				} else if (65 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'B';
				} else if (50 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'C';
				} else if (30 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'D';

					if (50 <= intAdditionalTest) {
						chaAnswerStock = 'C';
					}
				} else {
					chaAnswerStock = 'F';
				} 80 <= (IntermediateTest + intYearEndTest) 80 (IntermediateTest + intYearEndTest) IntermediateTest intYearEndTest {
					chaAnswerStock = 'A';
				} chaAnswerStock = 'A' chaAnswerStock 'A' if (65 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'B';
				} else if (50 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'C';
				} else if (30 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'D';

					if (50 <= intAdditionalTest) {
						chaAnswerStock = 'C';
					}
				} else {
					chaAnswerStock = 'F';
				} 65 <= (IntermediateTest + intYearEndTest) 65 (IntermediateTest + intYearEndTest) IntermediateTest intYearEndTest {
					chaAnswerStock = 'B';
				} chaAnswerStock = 'B' chaAnswerStock 'B' if (50 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'C';
				} else if (30 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'D';

					if (50 <= intAdditionalTest) {
						chaAnswerStock = 'C';
					}
				} else {
					chaAnswerStock = 'F';
				} 50 <= (IntermediateTest + intYearEndTest) 50 (IntermediateTest + intYearEndTest) IntermediateTest intYearEndTest {
					chaAnswerStock = 'C';
				} chaAnswerStock = 'C' chaAnswerStock 'C' if (30 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'D';

					if (50 <= intAdditionalTest) {
						chaAnswerStock = 'C';
					}
				} else {
					chaAnswerStock = 'F';
				} 30 <= (IntermediateTest + intYearEndTest) 30 (IntermediateTest + intYearEndTest) IntermediateTest intYearEndTest {
					chaAnswerStock = 'D';

					if (50 <= intAdditionalTest) {
						chaAnswerStock = 'C';
					}
				} chaAnswerStock = 'D' chaAnswerStock 'D' if (50 <= intAdditionalTest) {
						chaAnswerStock = 'C';
					} 50 <= intAdditionalTest 50 intAdditionalTest {
						chaAnswerStock = 'C';
					} chaAnswerStock = 'C' chaAnswerStock 'C' {
					chaAnswerStock = 'F';
				} chaAnswerStock = 'F' chaAnswerStock 'F' chaAnswer.add(chaAnswerStock) chaAnswer.add chaAnswer chaAnswerStock intAnwer++ intAnwer for(int i = 0; i < intAnwer; i++) {
				System.out.println(chaAnswer.get(i));
			} int i = 0; int i = 0; i 0 i < intAnwer i intAnwer i++ i++ i {
				System.out.println(chaAnswer.get(i));
			} {
				System.out.println(chaAnswer.get(i));
			} System.out.println(chaAnswer.get(i)) System.out.println System.out System System.out chaAnswer.get(i) chaAnswer.get chaAnswer i String[] args args public class Main{

	/**
	 * プログラムのエントリポイント
	 *
	 * @param args
	 */
	public static void main(String[] args) {

		// 答え
		ArrayList<Character> chaAnswer = new ArrayList<Character>();

		//答えがいくつあるかカウント
		int intAnwer = 0;

		// 1列づつ読み込む
		try {
			BufferedReader insBR = new BufferedReader(
					new InputStreamReader(System.in));


			while (true) {
				String strLine = insBR.readLine();

				//終了条件
				if(strLine.equals("-1 -1 -1")) {
					break;
				}

				// ばらけさせる
				String[] strAryLine = strLine.split(" ");

				// int型にキャスト
				// 中間テスト
				int IntermediateTest = Integer.parseInt(strAryLine[0]);

				// 期末テスト
				int intYearEndTest = Integer.parseInt(strAryLine[1]);

				// 追試
				int intAdditionalTest = Integer.parseInt(strAryLine[2]);

				// 答えのストック　A?F以外で初期化
				char chaAnswerStock = 'G';

				//-1は受けてないので中間テストと期末テストは0点とする
				if(IntermediateTest == -1) {
					intYearEndTest = 0;
				}

				if(intYearEndTest == -1) {
					IntermediateTest = 0;
				}

				// 成績の判断
				if (80 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'A';
				} else if (65 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'B';
				} else if (50 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'C';
				} else if (30 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'D';

					if (50 <= intAdditionalTest) {
						chaAnswerStock = 'C';
					}
				} else {
					chaAnswerStock = 'F';
				}
				chaAnswer.add(chaAnswerStock);
				intAnwer++;
			}

			// 出力
			for(int i = 0; i < intAnwer; i++) {
				System.out.println(chaAnswer.get(i));
			}

		} catch (IOException e) {
			System.out.println(e);
		} catch (NumberFormatException e) {
			System.out.println("数字で入力して下さい");
		}
	}
} public class Main{

	/**
	 * プログラムのエントリポイント
	 *
	 * @param args
	 */
	public static void main(String[] args) {

		// 答え
		ArrayList<Character> chaAnswer = new ArrayList<Character>();

		//答えがいくつあるかカウント
		int intAnwer = 0;

		// 1列づつ読み込む
		try {
			BufferedReader insBR = new BufferedReader(
					new InputStreamReader(System.in));


			while (true) {
				String strLine = insBR.readLine();

				//終了条件
				if(strLine.equals("-1 -1 -1")) {
					break;
				}

				// ばらけさせる
				String[] strAryLine = strLine.split(" ");

				// int型にキャスト
				// 中間テスト
				int IntermediateTest = Integer.parseInt(strAryLine[0]);

				// 期末テスト
				int intYearEndTest = Integer.parseInt(strAryLine[1]);

				// 追試
				int intAdditionalTest = Integer.parseInt(strAryLine[2]);

				// 答えのストック　A?F以外で初期化
				char chaAnswerStock = 'G';

				//-1は受けてないので中間テストと期末テストは0点とする
				if(IntermediateTest == -1) {
					intYearEndTest = 0;
				}

				if(intYearEndTest == -1) {
					IntermediateTest = 0;
				}

				// 成績の判断
				if (80 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'A';
				} else if (65 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'B';
				} else if (50 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'C';
				} else if (30 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'D';

					if (50 <= intAdditionalTest) {
						chaAnswerStock = 'C';
					}
				} else {
					chaAnswerStock = 'F';
				}
				chaAnswer.add(chaAnswerStock);
				intAnwer++;
			}

			// 出力
			for(int i = 0; i < intAnwer; i++) {
				System.out.println(chaAnswer.get(i));
			}

		} catch (IOException e) {
			System.out.println(e);
		} catch (NumberFormatException e) {
			System.out.println("数字で入力して下さい");
		}
	}
} Main
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

/**
 * Lesson7A あなたの課題は、あるクラスの数学の成績を付けるプログラムを作成することです。
 *
 * プログラムは複数の学生のテストの点数を読み込みます。
 *
 * テストの点数は、中間試験の点数 m、期末試験の点数 f、再試験の点数 r で構成されています。
 *
 * 中間試験と期末試験は 50 点満点（m, f ? 50）、再試験は 100 点満点 （r ? 100）です。
 *
 * 試験を受けていない場合は点数を -1 とします。
 *
 * 以下の手順で成績が付けられます： ?中間試験、期末試験のいずれかを欠席した場合成績は F。 ?中間試験と期末試験の合計点数が 80 以上ならば成績は A
 * 。 ?中間試験と期末試験の合計点数が 65 以上 80 未満ならば成績は B。 ?中間試験と期末試験の合計点数が 50 以上 65 未満ならば成績は C。
 * ?中間試験と期末試験の合計点数が 30 以上 50 未満ならば成績は D。 ただし、再試験の点数が 50 以上ならば成績は C。
 * ?中間試験と期末試験の合計点数が 30 未満ならば成績は F。
 *
 * @author Internship
 *
 */
public class Main{

	/**
	 * プログラムのエントリポイント
	 *
	 * @param args
	 */
	public static void main(String[] args) {

		// 答え
		ArrayList<Character> chaAnswer = new ArrayList<Character>();

		//答えがいくつあるかカウント
		int intAnwer = 0;

		// 1列づつ読み込む
		try {
			BufferedReader insBR = new BufferedReader(
					new InputStreamReader(System.in));


			while (true) {
				String strLine = insBR.readLine();

				//終了条件
				if(strLine.equals("-1 -1 -1")) {
					break;
				}

				// ばらけさせる
				String[] strAryLine = strLine.split(" ");

				// int型にキャスト
				// 中間テスト
				int IntermediateTest = Integer.parseInt(strAryLine[0]);

				// 期末テスト
				int intYearEndTest = Integer.parseInt(strAryLine[1]);

				// 追試
				int intAdditionalTest = Integer.parseInt(strAryLine[2]);

				// 答えのストック　A?F以外で初期化
				char chaAnswerStock = 'G';

				//-1は受けてないので中間テストと期末テストは0点とする
				if(IntermediateTest == -1) {
					intYearEndTest = 0;
				}

				if(intYearEndTest == -1) {
					IntermediateTest = 0;
				}

				// 成績の判断
				if (80 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'A';
				} else if (65 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'B';
				} else if (50 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'C';
				} else if (30 <= (IntermediateTest + intYearEndTest)) {
					chaAnswerStock = 'D';

					if (50 <= intAdditionalTest) {
						chaAnswerStock = 'C';
					}
				} else {
					chaAnswerStock = 'F';
				}
				chaAnswer.add(chaAnswerStock);
				intAnwer++;
			}

			// 出力
			for(int i = 0; i < intAnwer; i++) {
				System.out.println(chaAnswer.get(i));
			}

		} catch (IOException e) {
			System.out.println(e);
		} catch (NumberFormatException e) {
			System.out.println("数字で入力して下さい");
		}
	}
}