
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {

		//
		int taro_card_number = 0;
		Main fmc = new Main();

		// トランプの各図柄の配列を作る

		int[] S;
		S = new int[13];
		int[] D;
		D = new int[13];
		int[] H;
		H = new int[13];
		int[] C;
		C = new int[13];


		// テキスト入力
		Scanner sc = new Scanner(System.in);
		// タローが持っているカードの数
		while (sc.hasNext()) {
			taro_card_number = sc.nextInt();
		}

		// ループ処理
		for (int i = 0; i < taro_card_number; i++) {

			while (sc.hasNext()) {
				// 図柄
				String design = sc.next();
				// 数
				int number = sc.nextInt();

				// 図柄の指定に従い、数字を配列に格納
				if (design.equals("S")) {
					//
					fmc.set_property(S, number);
				}
				if (design.equals("H")) {
					fmc.set_property(H, number);
				}
				if (design.equals("D")) {
					fmc.set_property(D, number);
				}
				if (design.equals("C")) {
					fmc.set_property(C, number);
				}
			}

		}
		// //配列に入力情報が格納されたので、入力情報にないものをピックアップして出力

		// スペードから順にないものを出力
		for (int i = 0; i < 13; i++) {

			// ないものをピックアップ
			if (S[i] == 0) {
				System.out.println("S " + (i + 1));
			}
		}

		for (int i = 0; i < 13; i++) {

			// ないものをピックアップ
			if (H[i] == 0) {
				System.out.println("H " + (i + 1));
			}
		}

		for (int i = 0; i < 13; i++) {

			// ないものをピックアップ
			if (C[i] == 0) {
				System.out.println("C " + (i + 1));
			}
		}

		for (int i = 0; i < 13; i++) {

			// ないものをピックアップ
			if (D[i] == 0) {
				System.out.println("D " + (i + 1));
			}
		}
	}

	// 図柄の属性と数を取ってきて、配列に格納する
	public void set_property(int[] design, int number) {
		design[number - 1] = 1;
	}

	// //配列に格納しなかったものを表示する
	// public void output_result(int[] design,int i){
	// if(design[i] == 0){
	// System.out.println()
	// }
	// }

}