import java.io.*;
class Main{
	public static void main(String[]args)throws IOException{
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		
		while(true){
			String[] test=br.readLine().split(" ");
			int m=Integer.parseInt(test[0]);
			int f=Integer.parseInt(test[1]);
			int r=Integer.parseInt(test[2]);
			if(m==-1&&f==-1&&r==-1){
				break;
			}
			if(m==-1||f==-1){
				sb.append("F\n");
			}
			else if((m+f)>=80){
				sb.append("A\n");
			}
			else if((m+f)>=65&&(m+f)<80){
				sb.append("B\n");
			}
			else if((m+f)>=50&&(m+f)<65){
				sb.append("C\n");
			}
			else if((m+f)>=30&&(m+f)<50){
				if(r>=50){
					sb.append("C\n");
				}
				else{
					sb.append("D\n");
				}
			}
			else if((m+f)<30){
				sb.append("F\n");
			}
		}
		System.out.print(sb);
	}
} import java.io.*; io.* java class Main{
	public static void main(String[]args)throws IOException{
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		
		while(true){
			String[] test=br.readLine().split(" ");
			int m=Integer.parseInt(test[0]);
			int f=Integer.parseInt(test[1]);
			int r=Integer.parseInt(test[2]);
			if(m==-1&&f==-1&&r==-1){
				break;
			}
			if(m==-1||f==-1){
				sb.append("F\n");
			}
			else if((m+f)>=80){
				sb.append("A\n");
			}
			else if((m+f)>=65&&(m+f)<80){
				sb.append("B\n");
			}
			else if((m+f)>=50&&(m+f)<65){
				sb.append("C\n");
			}
			else if((m+f)>=30&&(m+f)<50){
				if(r>=50){
					sb.append("C\n");
				}
				else{
					sb.append("D\n");
				}
			}
			else if((m+f)<30){
				sb.append("F\n");
			}
		}
		System.out.print(sb);
	}
} Main public static void main(String[]args)throws IOException{
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		
		while(true){
			String[] test=br.readLine().split(" ");
			int m=Integer.parseInt(test[0]);
			int f=Integer.parseInt(test[1]);
			int r=Integer.parseInt(test[2]);
			if(m==-1&&f==-1&&r==-1){
				break;
			}
			if(m==-1||f==-1){
				sb.append("F\n");
			}
			else if((m+f)>=80){
				sb.append("A\n");
			}
			else if((m+f)>=65&&(m+f)<80){
				sb.append("B\n");
			}
			else if((m+f)>=50&&(m+f)<65){
				sb.append("C\n");
			}
			else if((m+f)>=30&&(m+f)<50){
				if(r>=50){
					sb.append("C\n");
				}
				else{
					sb.append("D\n");
				}
			}
			else if((m+f)<30){
				sb.append("F\n");
			}
		}
		System.out.print(sb);
	} main {
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		
		while(true){
			String[] test=br.readLine().split(" ");
			int m=Integer.parseInt(test[0]);
			int f=Integer.parseInt(test[1]);
			int r=Integer.parseInt(test[2]);
			if(m==-1&&f==-1&&r==-1){
				break;
			}
			if(m==-1||f==-1){
				sb.append("F\n");
			}
			else if((m+f)>=80){
				sb.append("A\n");
			}
			else if((m+f)>=65&&(m+f)<80){
				sb.append("B\n");
			}
			else if((m+f)>=50&&(m+f)<65){
				sb.append("C\n");
			}
			else if((m+f)>=30&&(m+f)<50){
				if(r>=50){
					sb.append("C\n");
				}
				else{
					sb.append("D\n");
				}
			}
			else if((m+f)<30){
				sb.append("F\n");
			}
		}
		System.out.print(sb);
	} BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); br new BufferedReader(new InputStreamReader(System.in)) StringBuilder sb = new StringBuilder(); sb new StringBuilder() while(true){
			String[] test=br.readLine().split(" ");
			int m=Integer.parseInt(test[0]);
			int f=Integer.parseInt(test[1]);
			int r=Integer.parseInt(test[2]);
			if(m==-1&&f==-1&&r==-1){
				break;
			}
			if(m==-1||f==-1){
				sb.append("F\n");
			}
			else if((m+f)>=80){
				sb.append("A\n");
			}
			else if((m+f)>=65&&(m+f)<80){
				sb.append("B\n");
			}
			else if((m+f)>=50&&(m+f)<65){
				sb.append("C\n");
			}
			else if((m+f)>=30&&(m+f)<50){
				if(r>=50){
					sb.append("C\n");
				}
				else{
					sb.append("D\n");
				}
			}
			else if((m+f)<30){
				sb.append("F\n");
			}
		} true {
			String[] test=br.readLine().split(" ");
			int m=Integer.parseInt(test[0]);
			int f=Integer.parseInt(test[1]);
			int r=Integer.parseInt(test[2]);
			if(m==-1&&f==-1&&r==-1){
				break;
			}
			if(m==-1||f==-1){
				sb.append("F\n");
			}
			else if((m+f)>=80){
				sb.append("A\n");
			}
			else if((m+f)>=65&&(m+f)<80){
				sb.append("B\n");
			}
			else if((m+f)>=50&&(m+f)<65){
				sb.append("C\n");
			}
			else if((m+f)>=30&&(m+f)<50){
				if(r>=50){
					sb.append("C\n");
				}
				else{
					sb.append("D\n");
				}
			}
			else if((m+f)<30){
				sb.append("F\n");
			}
		} String[] test=br.readLine().split(" "); test br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " int m=Integer.parseInt(test[0]); m Integer.parseInt(test[0]) Integer.parseInt Integer test[0] test 0 int f=Integer.parseInt(test[1]); f Integer.parseInt(test[1]) Integer.parseInt Integer test[1] test 1 int r=Integer.parseInt(test[2]); r Integer.parseInt(test[2]) Integer.parseInt Integer test[2] test 2 if(m==-1&&f==-1&&r==-1){
				break;
			} m==-1&&f==-1&&r==-1 m==-1&&f==-1&&r==-1 m==-1 m -1 1 f==-1 f -1 1 r==-1 r -1 1 {
				break;
			} break; if(m==-1||f==-1){
				sb.append("F\n");
			}
			else if((m+f)>=80){
				sb.append("A\n");
			}
			else if((m+f)>=65&&(m+f)<80){
				sb.append("B\n");
			}
			else if((m+f)>=50&&(m+f)<65){
				sb.append("C\n");
			}
			else if((m+f)>=30&&(m+f)<50){
				if(r>=50){
					sb.append("C\n");
				}
				else{
					sb.append("D\n");
				}
			}
			else if((m+f)<30){
				sb.append("F\n");
			} m==-1||f==-1 m==-1 m -1 1 f==-1 f -1 1 {
				sb.append("F\n");
			} sb.append("F\n") sb.append sb "F\n" if((m+f)>=80){
				sb.append("A\n");
			}
			else if((m+f)>=65&&(m+f)<80){
				sb.append("B\n");
			}
			else if((m+f)>=50&&(m+f)<65){
				sb.append("C\n");
			}
			else if((m+f)>=30&&(m+f)<50){
				if(r>=50){
					sb.append("C\n");
				}
				else{
					sb.append("D\n");
				}
			}
			else if((m+f)<30){
				sb.append("F\n");
			} (m+f)>=80 (m+f) m f 80 {
				sb.append("A\n");
			} sb.append("A\n") sb.append sb "A\n" if((m+f)>=65&&(m+f)<80){
				sb.append("B\n");
			}
			else if((m+f)>=50&&(m+f)<65){
				sb.append("C\n");
			}
			else if((m+f)>=30&&(m+f)<50){
				if(r>=50){
					sb.append("C\n");
				}
				else{
					sb.append("D\n");
				}
			}
			else if((m+f)<30){
				sb.append("F\n");
			} (m+f)>=65&&(m+f)<80 (m+f)>=65 (m+f) m f 65 (m+f)<80 (m+f) m f 80 {
				sb.append("B\n");
			} sb.append("B\n") sb.append sb "B\n" if((m+f)>=50&&(m+f)<65){
				sb.append("C\n");
			}
			else if((m+f)>=30&&(m+f)<50){
				if(r>=50){
					sb.append("C\n");
				}
				else{
					sb.append("D\n");
				}
			}
			else if((m+f)<30){
				sb.append("F\n");
			} (m+f)>=50&&(m+f)<65 (m+f)>=50 (m+f) m f 50 (m+f)<65 (m+f) m f 65 {
				sb.append("C\n");
			} sb.append("C\n") sb.append sb "C\n" if((m+f)>=30&&(m+f)<50){
				if(r>=50){
					sb.append("C\n");
				}
				else{
					sb.append("D\n");
				}
			}
			else if((m+f)<30){
				sb.append("F\n");
			} (m+f)>=30&&(m+f)<50 (m+f)>=30 (m+f) m f 30 (m+f)<50 (m+f) m f 50 {
				if(r>=50){
					sb.append("C\n");
				}
				else{
					sb.append("D\n");
				}
			} if(r>=50){
					sb.append("C\n");
				}
				else{
					sb.append("D\n");
				} r>=50 r 50 {
					sb.append("C\n");
				} sb.append("C\n") sb.append sb "C\n" {
					sb.append("D\n");
				} sb.append("D\n") sb.append sb "D\n" if((m+f)<30){
				sb.append("F\n");
			} (m+f)<30 (m+f) m f 30 {
				sb.append("F\n");
			} sb.append("F\n") sb.append sb "F\n" System.out.print(sb) System.out.print System.out System System.out sb String[]args args
import java.io.*;
class Main{
	public static void main(String[]args)throws IOException{
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		
		while(true){
			String[] test=br.readLine().split(" ");
			int m=Integer.parseInt(test[0]);
			int f=Integer.parseInt(test[1]);
			int r=Integer.parseInt(test[2]);
			if(m==-1&&f==-1&&r==-1){
				break;
			}
			if(m==-1||f==-1){
				sb.append("F\n");
			}
			else if((m+f)>=80){
				sb.append("A\n");
			}
			else if((m+f)>=65&&(m+f)<80){
				sb.append("B\n");
			}
			else if((m+f)>=50&&(m+f)<65){
				sb.append("C\n");
			}
			else if((m+f)>=30&&(m+f)<50){
				if(r>=50){
					sb.append("C\n");
				}
				else{
					sb.append("D\n");
				}
			}
			else if((m+f)<30){
				sb.append("F\n");
			}
		}
		System.out.print(sb);
	}
}