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

public class Main {

	public static final int BIG_NUM  = 2000000000;
	public static final int MOD  = 1000000007;

	public static void main(String[] args) {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int table[] = new int[128];
		String work[] = new String[2];
		String outPut[] = {"S","H","C","D"};

		table['S'] = 0;
		table['H'] = 1;
		table['C'] = 2;
		table['D'] = 3;

		boolean check[][] = new boolean[4][14];
		for(int row = 0; row < 4; row++){
			for(int col = 1; col <= 13; col++)check[row][col] = false;
		}

		try {
			int N = Integer.parseInt(br.readLine());

			for(int loop = 0; loop < N; loop++){
				work = br.readLine().split("\\s+");
				check[table[work[0].charAt(0)]][Integer.parseInt(work[1])] = true;
			}

			for(int row = 0; row < 4; row++){
				for(int col = 1; col <= 13; col++){
					if(!check[row][col]){
						System.out.printf("%s %d\n", outPut[row],col);
					}
				}
			}

		} catch (NumberFormatException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

 import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io public class Main {

	public static final int BIG_NUM  = 2000000000;
	public static final int MOD  = 1000000007;

	public static void main(String[] args) {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int table[] = new int[128];
		String work[] = new String[2];
		String outPut[] = {"S","H","C","D"};

		table['S'] = 0;
		table['H'] = 1;
		table['C'] = 2;
		table['D'] = 3;

		boolean check[][] = new boolean[4][14];
		for(int row = 0; row < 4; row++){
			for(int col = 1; col <= 13; col++)check[row][col] = false;
		}

		try {
			int N = Integer.parseInt(br.readLine());

			for(int loop = 0; loop < N; loop++){
				work = br.readLine().split("\\s+");
				check[table[work[0].charAt(0)]][Integer.parseInt(work[1])] = true;
			}

			for(int row = 0; row < 4; row++){
				for(int col = 1; col <= 13; col++){
					if(!check[row][col]){
						System.out.printf("%s %d\n", outPut[row],col);
					}
				}
			}

		} catch (NumberFormatException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
} Main public static final int BIG_NUM  = 2000000000; BIG_NUM 2000000000 public static final int MOD  = 1000000007; MOD 1000000007 public static void main(String[] args) {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int table[] = new int[128];
		String work[] = new String[2];
		String outPut[] = {"S","H","C","D"};

		table['S'] = 0;
		table['H'] = 1;
		table['C'] = 2;
		table['D'] = 3;

		boolean check[][] = new boolean[4][14];
		for(int row = 0; row < 4; row++){
			for(int col = 1; col <= 13; col++)check[row][col] = false;
		}

		try {
			int N = Integer.parseInt(br.readLine());

			for(int loop = 0; loop < N; loop++){
				work = br.readLine().split("\\s+");
				check[table[work[0].charAt(0)]][Integer.parseInt(work[1])] = true;
			}

			for(int row = 0; row < 4; row++){
				for(int col = 1; col <= 13; col++){
					if(!check[row][col]){
						System.out.printf("%s %d\n", outPut[row],col);
					}
				}
			}

		} catch (NumberFormatException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	} main {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int table[] = new int[128];
		String work[] = new String[2];
		String outPut[] = {"S","H","C","D"};

		table['S'] = 0;
		table['H'] = 1;
		table['C'] = 2;
		table['D'] = 3;

		boolean check[][] = new boolean[4][14];
		for(int row = 0; row < 4; row++){
			for(int col = 1; col <= 13; col++)check[row][col] = false;
		}

		try {
			int N = Integer.parseInt(br.readLine());

			for(int loop = 0; loop < N; loop++){
				work = br.readLine().split("\\s+");
				check[table[work[0].charAt(0)]][Integer.parseInt(work[1])] = true;
			}

			for(int row = 0; row < 4; row++){
				for(int col = 1; col <= 13; col++){
					if(!check[row][col]){
						System.out.printf("%s %d\n", outPut[row],col);
					}
				}
			}

		} catch (NumberFormatException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	} BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br new BufferedReader(new InputStreamReader(System.in)) int table[] = new int[128]; table new int[128] 128 String work[] = new String[2]; work new String[2] 2 String outPut[] = {"S","H","C","D"}; outPut {"S","H","C","D"} "S" "H" "C" "D" table['S'] = 0 table['S'] table 'S' 0 table['H'] = 1 table['H'] table 'H' 1 table['C'] = 2 table['C'] table 'C' 2 table['D'] = 3 table['D'] table 'D' 3 boolean check[][] = new boolean[4][14]; check new boolean[4][14] 4 14 for(int row = 0; row < 4; row++){
			for(int col = 1; col <= 13; col++)check[row][col] = false;
		} int row = 0; int row = 0; row 0 row < 4 row 4 row++ row++ row {
			for(int col = 1; col <= 13; col++)check[row][col] = false;
		} {
			for(int col = 1; col <= 13; col++)check[row][col] = false;
		} for(int col = 1; col <= 13; col++)check[row][col] = false; int col = 1; int col = 1; col 1 col <= 13 col 13 col++ col++ col check[row][col] = false; check[row][col] = false check[row][col] check[row] check row col false try {
			int N = Integer.parseInt(br.readLine());

			for(int loop = 0; loop < N; loop++){
				work = br.readLine().split("\\s+");
				check[table[work[0].charAt(0)]][Integer.parseInt(work[1])] = true;
			}

			for(int row = 0; row < 4; row++){
				for(int col = 1; col <= 13; col++){
					if(!check[row][col]){
						System.out.printf("%s %d\n", outPut[row],col);
					}
				}
			}

		} catch (NumberFormatException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (NumberFormatException e) {
			e.printStackTrace();
		} NumberFormatException e {
			e.printStackTrace();
		} e.printStackTrace() e.printStackTrace e catch (IOException e) {
			e.printStackTrace();
		} IOException e {
			e.printStackTrace();
		} e.printStackTrace() e.printStackTrace e {
			int N = Integer.parseInt(br.readLine());

			for(int loop = 0; loop < N; loop++){
				work = br.readLine().split("\\s+");
				check[table[work[0].charAt(0)]][Integer.parseInt(work[1])] = true;
			}

			for(int row = 0; row < 4; row++){
				for(int col = 1; col <= 13; col++){
					if(!check[row][col]){
						System.out.printf("%s %d\n", outPut[row],col);
					}
				}
			}

		} int N = Integer.parseInt(br.readLine()); N Integer.parseInt(br.readLine()) Integer.parseInt Integer br.readLine() br.readLine br for(int loop = 0; loop < N; loop++){
				work = br.readLine().split("\\s+");
				check[table[work[0].charAt(0)]][Integer.parseInt(work[1])] = true;
			} int loop = 0; int loop = 0; loop 0 loop < N loop N loop++ loop++ loop {
				work = br.readLine().split("\\s+");
				check[table[work[0].charAt(0)]][Integer.parseInt(work[1])] = true;
			} {
				work = br.readLine().split("\\s+");
				check[table[work[0].charAt(0)]][Integer.parseInt(work[1])] = true;
			} work = br.readLine().split("\\s+") work br.readLine().split("\\s+") br.readLine().split br.readLine() br.readLine br "\\s+" check[table[work[0].charAt(0)]][Integer.parseInt(work[1])] = true check[table[work[0].charAt(0)]][Integer.parseInt(work[1])] check[table[work[0].charAt(0)]] check table[work[0].charAt(0)] table work[0].charAt(0) work[0].charAt work[0] work 0 0 Integer.parseInt(work[1]) Integer.parseInt Integer work[1] work 1 true for(int row = 0; row < 4; row++){
				for(int col = 1; col <= 13; col++){
					if(!check[row][col]){
						System.out.printf("%s %d\n", outPut[row],col);
					}
				}
			} int row = 0; int row = 0; row 0 row < 4 row 4 row++ row++ row {
				for(int col = 1; col <= 13; col++){
					if(!check[row][col]){
						System.out.printf("%s %d\n", outPut[row],col);
					}
				}
			} {
				for(int col = 1; col <= 13; col++){
					if(!check[row][col]){
						System.out.printf("%s %d\n", outPut[row],col);
					}
				}
			} for(int col = 1; col <= 13; col++){
					if(!check[row][col]){
						System.out.printf("%s %d\n", outPut[row],col);
					}
				} int col = 1; int col = 1; col 1 col <= 13 col 13 col++ col++ col {
					if(!check[row][col]){
						System.out.printf("%s %d\n", outPut[row],col);
					}
				} {
					if(!check[row][col]){
						System.out.printf("%s %d\n", outPut[row],col);
					}
				} if(!check[row][col]){
						System.out.printf("%s %d\n", outPut[row],col);
					} !check[row][col] check[row][col] check[row] check row col {
						System.out.printf("%s %d\n", outPut[row],col);
					} System.out.printf("%s %d\n", outPut[row],col) System.out.printf System.out System System.out "%s %d\n" outPut[row] outPut row col String[] args args public class Main {

	public static final int BIG_NUM  = 2000000000;
	public static final int MOD  = 1000000007;

	public static void main(String[] args) {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int table[] = new int[128];
		String work[] = new String[2];
		String outPut[] = {"S","H","C","D"};

		table['S'] = 0;
		table['H'] = 1;
		table['C'] = 2;
		table['D'] = 3;

		boolean check[][] = new boolean[4][14];
		for(int row = 0; row < 4; row++){
			for(int col = 1; col <= 13; col++)check[row][col] = false;
		}

		try {
			int N = Integer.parseInt(br.readLine());

			for(int loop = 0; loop < N; loop++){
				work = br.readLine().split("\\s+");
				check[table[work[0].charAt(0)]][Integer.parseInt(work[1])] = true;
			}

			for(int row = 0; row < 4; row++){
				for(int col = 1; col <= 13; col++){
					if(!check[row][col]){
						System.out.printf("%s %d\n", outPut[row],col);
					}
				}
			}

		} catch (NumberFormatException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
} public class Main {

	public static final int BIG_NUM  = 2000000000;
	public static final int MOD  = 1000000007;

	public static void main(String[] args) {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int table[] = new int[128];
		String work[] = new String[2];
		String outPut[] = {"S","H","C","D"};

		table['S'] = 0;
		table['H'] = 1;
		table['C'] = 2;
		table['D'] = 3;

		boolean check[][] = new boolean[4][14];
		for(int row = 0; row < 4; row++){
			for(int col = 1; col <= 13; col++)check[row][col] = false;
		}

		try {
			int N = Integer.parseInt(br.readLine());

			for(int loop = 0; loop < N; loop++){
				work = br.readLine().split("\\s+");
				check[table[work[0].charAt(0)]][Integer.parseInt(work[1])] = true;
			}

			for(int row = 0; row < 4; row++){
				for(int col = 1; col <= 13; col++){
					if(!check[row][col]){
						System.out.printf("%s %d\n", outPut[row],col);
					}
				}
			}

		} catch (NumberFormatException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
} Main
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

	public static final int BIG_NUM  = 2000000000;
	public static final int MOD  = 1000000007;

	public static void main(String[] args) {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int table[] = new int[128];
		String work[] = new String[2];
		String outPut[] = {"S","H","C","D"};

		table['S'] = 0;
		table['H'] = 1;
		table['C'] = 2;
		table['D'] = 3;

		boolean check[][] = new boolean[4][14];
		for(int row = 0; row < 4; row++){
			for(int col = 1; col <= 13; col++)check[row][col] = false;
		}

		try {
			int N = Integer.parseInt(br.readLine());

			for(int loop = 0; loop < N; loop++){
				work = br.readLine().split("\\s+");
				check[table[work[0].charAt(0)]][Integer.parseInt(work[1])] = true;
			}

			for(int row = 0; row < 4; row++){
				for(int col = 1; col <= 13; col++){
					if(!check[row][col]){
						System.out.printf("%s %d\n", outPut[row],col);
					}
				}
			}

		} catch (NumberFormatException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}


