import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();

		String[] patterns = { "S", "H", "C", "D" };
		int cards[][] = new int[4][13];

		//入力されたカードを配列に2次元配列に格納する
		for (int i = 0; i < a; i++) {
			String str = sc.next();
			int num = sc.nextInt();
			cards[convert(str)][num-1] = num;
		}

		//不足してるカードを出力する
		for (int i = 0; i < patterns.length; i++) {
			for (int j = 0; j < 13; j++ ) {
				if(cards[i][j] == 0)
					System.out.println(patterns[i] + " " + (j+1));
			}
		}
	}
	
	public static int convert(String str){
		int value = 0;
		if(str.equals("S")) value = 0;
		else if(str.equals("H")) value = 1;
		else if(str.equals("C")) value = 2;
		else if(str.equals("D")) value = 3;
		return value;
	}
} import java.util.Scanner; Scanner java.util public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();

		String[] patterns = { "S", "H", "C", "D" };
		int cards[][] = new int[4][13];

		//入力されたカードを配列に2次元配列に格納する
		for (int i = 0; i < a; i++) {
			String str = sc.next();
			int num = sc.nextInt();
			cards[convert(str)][num-1] = num;
		}

		//不足してるカードを出力する
		for (int i = 0; i < patterns.length; i++) {
			for (int j = 0; j < 13; j++ ) {
				if(cards[i][j] == 0)
					System.out.println(patterns[i] + " " + (j+1));
			}
		}
	}
	
	public static int convert(String str){
		int value = 0;
		if(str.equals("S")) value = 0;
		else if(str.equals("H")) value = 1;
		else if(str.equals("C")) value = 2;
		else if(str.equals("D")) value = 3;
		return value;
	}
} Main public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();

		String[] patterns = { "S", "H", "C", "D" };
		int cards[][] = new int[4][13];

		//入力されたカードを配列に2次元配列に格納する
		for (int i = 0; i < a; i++) {
			String str = sc.next();
			int num = sc.nextInt();
			cards[convert(str)][num-1] = num;
		}

		//不足してるカードを出力する
		for (int i = 0; i < patterns.length; i++) {
			for (int j = 0; j < 13; j++ ) {
				if(cards[i][j] == 0)
					System.out.println(patterns[i] + " " + (j+1));
			}
		}
	} main {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();

		String[] patterns = { "S", "H", "C", "D" };
		int cards[][] = new int[4][13];

		//入力されたカードを配列に2次元配列に格納する
		for (int i = 0; i < a; i++) {
			String str = sc.next();
			int num = sc.nextInt();
			cards[convert(str)][num-1] = num;
		}

		//不足してるカードを出力する
		for (int i = 0; i < patterns.length; i++) {
			for (int j = 0; j < 13; j++ ) {
				if(cards[i][j] == 0)
					System.out.println(patterns[i] + " " + (j+1));
			}
		}
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int a = sc.nextInt(); a sc.nextInt() sc.nextInt sc String[] patterns = { "S", "H", "C", "D" }; patterns { "S", "H", "C", "D" } "S" "H" "C" "D" int cards[][] = new int[4][13]; cards new int[4][13] 4 13 for (int i = 0; i < a; i++) {
			String str = sc.next();
			int num = sc.nextInt();
			cards[convert(str)][num-1] = num;
		} int i = 0; int i = 0; i 0 i < a i a i++ i++ i {
			String str = sc.next();
			int num = sc.nextInt();
			cards[convert(str)][num-1] = num;
		} {
			String str = sc.next();
			int num = sc.nextInt();
			cards[convert(str)][num-1] = num;
		} String str = sc.next(); str sc.next() sc.next sc int num = sc.nextInt(); num sc.nextInt() sc.nextInt sc cards[convert(str)][num-1] = num cards[convert(str)][num-1] cards[convert(str)] cards convert(str) convert str num-1 num 1 num for (int i = 0; i < patterns.length; i++) {
			for (int j = 0; j < 13; j++ ) {
				if(cards[i][j] == 0)
					System.out.println(patterns[i] + " " + (j+1));
			}
		} int i = 0; int i = 0; i 0 i < patterns.length i patterns.length patterns patterns.length i++ i++ i {
			for (int j = 0; j < 13; j++ ) {
				if(cards[i][j] == 0)
					System.out.println(patterns[i] + " " + (j+1));
			}
		} {
			for (int j = 0; j < 13; j++ ) {
				if(cards[i][j] == 0)
					System.out.println(patterns[i] + " " + (j+1));
			}
		} for (int j = 0; j < 13; j++ ) {
				if(cards[i][j] == 0)
					System.out.println(patterns[i] + " " + (j+1));
			} int j = 0; int j = 0; j 0 j < 13 j 13 j++ j++ j {
				if(cards[i][j] == 0)
					System.out.println(patterns[i] + " " + (j+1));
			} {
				if(cards[i][j] == 0)
					System.out.println(patterns[i] + " " + (j+1));
			} if(cards[i][j] == 0)
					System.out.println(patterns[i] + " " + (j+1)); cards[i][j] == 0 cards[i][j] cards[i] cards i j 0 System.out.println(patterns[i] + " " + (j+1)) System.out.println System.out System System.out patterns[i] + " " + (j+1) patterns[i] + " " + (j+1) patterns[i] patterns i " " (j+1) j 1 String[] args args public static int convert(String str){
		int value = 0;
		if(str.equals("S")) value = 0;
		else if(str.equals("H")) value = 1;
		else if(str.equals("C")) value = 2;
		else if(str.equals("D")) value = 3;
		return value;
	} convert {
		int value = 0;
		if(str.equals("S")) value = 0;
		else if(str.equals("H")) value = 1;
		else if(str.equals("C")) value = 2;
		else if(str.equals("D")) value = 3;
		return value;
	} int value = 0; value 0 if(str.equals("S")) value = 0;
		else if(str.equals("H")) value = 1;
		else if(str.equals("C")) value = 2;
		else if(str.equals("D")) value = 3; str.equals("S") str.equals str "S" value = 0 value 0 if(str.equals("H")) value = 1;
		else if(str.equals("C")) value = 2;
		else if(str.equals("D")) value = 3; str.equals("H") str.equals str "H" value = 1 value 1 if(str.equals("C")) value = 2;
		else if(str.equals("D")) value = 3; str.equals("C") str.equals str "C" value = 2 value 2 if(str.equals("D")) value = 3; str.equals("D") str.equals str "D" value = 3 value 3 return value; value String str str public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();

		String[] patterns = { "S", "H", "C", "D" };
		int cards[][] = new int[4][13];

		//入力されたカードを配列に2次元配列に格納する
		for (int i = 0; i < a; i++) {
			String str = sc.next();
			int num = sc.nextInt();
			cards[convert(str)][num-1] = num;
		}

		//不足してるカードを出力する
		for (int i = 0; i < patterns.length; i++) {
			for (int j = 0; j < 13; j++ ) {
				if(cards[i][j] == 0)
					System.out.println(patterns[i] + " " + (j+1));
			}
		}
	}
	
	public static int convert(String str){
		int value = 0;
		if(str.equals("S")) value = 0;
		else if(str.equals("H")) value = 1;
		else if(str.equals("C")) value = 2;
		else if(str.equals("D")) value = 3;
		return value;
	}
} public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();

		String[] patterns = { "S", "H", "C", "D" };
		int cards[][] = new int[4][13];

		//入力されたカードを配列に2次元配列に格納する
		for (int i = 0; i < a; i++) {
			String str = sc.next();
			int num = sc.nextInt();
			cards[convert(str)][num-1] = num;
		}

		//不足してるカードを出力する
		for (int i = 0; i < patterns.length; i++) {
			for (int j = 0; j < 13; j++ ) {
				if(cards[i][j] == 0)
					System.out.println(patterns[i] + " " + (j+1));
			}
		}
	}
	
	public static int convert(String str){
		int value = 0;
		if(str.equals("S")) value = 0;
		else if(str.equals("H")) value = 1;
		else if(str.equals("C")) value = 2;
		else if(str.equals("D")) value = 3;
		return value;
	}
} Main
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();

		String[] patterns = { "S", "H", "C", "D" };
		int cards[][] = new int[4][13];

		//入力されたカードを配列に2次元配列に格納する
		for (int i = 0; i < a; i++) {
			String str = sc.next();
			int num = sc.nextInt();
			cards[convert(str)][num-1] = num;
		}

		//不足してるカードを出力する
		for (int i = 0; i < patterns.length; i++) {
			for (int j = 0; j < 13; j++ ) {
				if(cards[i][j] == 0)
					System.out.println(patterns[i] + " " + (j+1));
			}
		}
	}
	
	public static int convert(String str){
		int value = 0;
		if(str.equals("S")) value = 0;
		else if(str.equals("H")) value = 1;
		else if(str.equals("C")) value = 2;
		else if(str.equals("D")) value = 3;
		return value;
	}
}