import java.io.*;

public class soccer {

	InputStreamReader isr = new InputStreamReader(System.in);
	BufferedReader br = new BufferedReader(isr);
	
	public int[] readInt() throws IOException {
		String vstup = br.readLine();
		String []rozdel = vstup.split("\t| ");
		int []vrat = new int[rozdel.length];
		for (int i = 0; i < rozdel.length; i++) {
			vrat[i] = Integer.parseInt(rozdel[i].trim());
		}
		return vrat;		
	}
	
	public String[] readString() throws IOException {
		String vstup = br.readLine();
		String []rozdel = vstup.split("\t| |:| - ");
		return rozdel;		
	}

	public void zvys(String [][] a, int kto, int kam, int kolko) {
		int pov = Integer.parseInt(a[kto][kam].trim());
		a[kto][kam] = String.valueOf(pov + kolko);	
	}

	public int porovnaj(String a, String b) {
		int prve = Integer.parseInt(a.trim());
		int druhe = Integer.parseInt(b.trim());
		return prve - druhe;
	}

	public void printSpace(int pocet) {
		for (int i = 0; i <pocet; i++) {
			System.out.print(" ");
		}
	}
	
	public void printPom(int pocet) {
		for (int i = 0; i <pocet; i++) {
			System.out.print("-");
		}
	}
	
	public void printLine(int max_s, int pocet) {
		
		System.out.print("+");
		printPom(max_s);
		System.out.print("+");	
		for (int i = 0; i < pocet; i++) {
			System.out.print("---+");
		}
	}
	
	public void printHead(String[][] pole, int max_s, int pocet) {
		
		System.out.print("|");
		printSpace(max_s);
		System.out.print("|");	
		for (int i = 0; i < pocet; i++) {
			System.out.print(pole[i][0].substring(0, 3));
			System.out.print("|");
		}
	}
	
	

	public void solve() throws IOException{
		while (true) {
			int pocet = readInt()[0];
			if (pocet == 0) break;
			String [][]pole = new String[pocet][8];
			int max_s = 0;
			for (int i = 0; i < pocet; i++) {
				pole[i][0] = readString()[0];
				if (max_s < pole[i][0].length()) max_s = pole[i][0].length();
			}	
			for (int i= 0; i < pocet; i++) {
				for (int j = 1; j < 8; j++) {
					pole[i][j] = new String("0");				
				}
				
			}		
			int zapasy = readInt()[0];
			String [][]vys = new String[pocet][pocet];
			String []pom;			
			for (int i = 0; i < zapasy; i++) {
				pom = readString();
				//System.out.println(pom[4]);
				int domaci = 0;
				int hostia = 0;
				int por = 0;
				for (int j = 0; j < pocet; j++) {
					if (pole[j][0].compareTo(pom[0]) == 0) {
						domaci = j;
						zvys(pole, j, 1, 1);
						por = porovnaj(pom[3],pom[4]);	
						if (por == 0) {
							zvys(pole, j, 7, 1);						
							zvys(pole, j, 3, 1);
						}	
						if (por < 0) zvys(pole, j, 4, 1);
						if (por > 0)  {
							zvys(pole, j, 2, 1);
							zvys(pole, j, 7, 3);
						}
						zvys(pole, j, 5, Integer.parseInt(pom[3].trim()));
						zvys(pole, j, 6, Integer.parseInt(pom[4].trim()));
					}	
					if (pole[j][0].compareTo(pom[2]) == 0) {
						hostia = j;	
						zvys(pole, j, 1, 1);	
						por = porovnaj(pom[4],pom[3]);	
						if (por == 0) {
							zvys(pole, j, 7, 1);						
							zvys(pole, j, 3, 1);
						}	
						if (por < 0) zvys(pole, j, 4, 1);
						if (por > 0)  {
							zvys(pole, j, 2, 1);
							zvys(pole, j, 7, 3);
						}
						zvys(pole, j, 5, Integer.parseInt(pom[4].trim()));
						zvys(pole, j, 6, Integer.parseInt(pom[3].trim()));			
					}
							
					
				}
				vys[domaci][hostia] = pom[3] + ":" + pom[4];	

			}
			
			System.out.println("RESULTS:");
			printLine(max_s, pocet);
			System.out.println();
			printHead(pole, max_s, pocet);
			System.out.println();
			printLine(max_s, pocet);
			System.out.println();
			for (int i= 0; i < pocet; i++) {
				
				for(int j = -1; j < pocet; j++){
					if (j == -1) {
						System.out.print("|" + pole[i][0]);
						printSpace(max_s - pole[i][0].length());
						System.out.print("|");
					}
					else if (j == i) {
						System.out.print(" X |");
					}
					else {
						if (vys[i][j] != null) {
						
							System.out.print(vys[i][j] + "|");
						}
						else {
							System.out.print("   |");
						}
					}
				}
				System.out.println();
				printLine(max_s, pocet);
				System.out.println();
			}
			
			
			System.out.println();
			System.out.println("STANDINGS:");
			System.out.println("----------");
			
			for (int i= 0; i < pocet; i++) {
				int max = 0;
				for(int j = 0; j < pocet; j++){
					if(Integer.parseInt(pole[j][7]) > Integer.parseInt(pole[max][7])){
						max = j;
					}else if(Integer.parseInt(pole[j][7]) == Integer.parseInt(pole[max][7])){
						if(Integer.parseInt(pole[j][5]) - Integer.parseInt(pole[j][6]) > Integer.parseInt(pole[max][5]) - Integer.parseInt(pole[max][6])){
							max = j;
						}else if(Integer.parseInt(pole[j][5]) - Integer.parseInt(pole[j][6]) == Integer.parseInt(pole[max][5]) - Integer.parseInt(pole[max][6])){
							if (Integer.parseInt(pole[j][5]) > Integer.parseInt(pole[max][5])) {
								max = j;
							}
							else if (Integer.parseInt(pole[j][5]) == Integer.parseInt(pole[max][5])) {
								if (Integer.parseInt(pole[j][2]) > Integer.parseInt(pole[max][2])) {
									max = j;
								}
								else if (j > max) {
									max = j;
								}
							}			
						}
					}
				}
				
				
				
				
				System.out.print((i+1) + ". ");
				for (int j = 0; j < 8; j++) {
					if (j == 0) { 
						System.out.print(pole[max][j]);
						printSpace(max_s - pole[max][j].length() + 1);
					}
					else if (j == 5){
						System.out.print(pole[max][j] + ":");
					}
					else {
						System.out.print(pole[max][j] + " ");	
					}			
				}
				pole[max][7] = "-1";
				System.out.println();
			}	
			
		}	  
		
		
	}

	public static void main(String[] args) throws IOException{
		// TODO Auto-generated method stub
		soccer r  = new soccer();
		r.solve();
	}

}
