import java.awt.*;
import java.awt.geom.*;
import java.io.*;

import java.util.*;
class Main {

	static char[] xx = new char[] {'S','H','C','D'};
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		boolean[][] l = new boolean[4][13];
		for(int i = 0; i < n; i++) {
			char k = sc.next().charAt(0);
			int r = sc.nextInt();
			if(k == 'S') {
				l[0][r-1] = true;
			}
			if(k == 'H') {
				l[1][r-1] = true;
			}
			if(k == 'C') {
				l[2][r-1] = true;
			}
			if(k == 'D') {
				l[3][r-1] = true;
			}
		}
		for(int i = 0 ; i< 4; i++) {
			for(int j = 0; j < 13; j++) {
				if(!l[i][j]) {
					System.out.println(xx[i] + " " + (j+1));
				}
			}
		}
	}
} import java.awt.*; awt.* java import java.awt.geom.*; geom.* java.awt import java.io.*; io.* java import java.util.*; util.* java class Main {

	static char[] xx = new char[] {'S','H','C','D'};
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		boolean[][] l = new boolean[4][13];
		for(int i = 0; i < n; i++) {
			char k = sc.next().charAt(0);
			int r = sc.nextInt();
			if(k == 'S') {
				l[0][r-1] = true;
			}
			if(k == 'H') {
				l[1][r-1] = true;
			}
			if(k == 'C') {
				l[2][r-1] = true;
			}
			if(k == 'D') {
				l[3][r-1] = true;
			}
		}
		for(int i = 0 ; i< 4; i++) {
			for(int j = 0; j < 13; j++) {
				if(!l[i][j]) {
					System.out.println(xx[i] + " " + (j+1));
				}
			}
		}
	}
} Main static char[] xx = new char[] {'S','H','C','D'}; xx new char[] {'S','H','C','D'} public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		boolean[][] l = new boolean[4][13];
		for(int i = 0; i < n; i++) {
			char k = sc.next().charAt(0);
			int r = sc.nextInt();
			if(k == 'S') {
				l[0][r-1] = true;
			}
			if(k == 'H') {
				l[1][r-1] = true;
			}
			if(k == 'C') {
				l[2][r-1] = true;
			}
			if(k == 'D') {
				l[3][r-1] = true;
			}
		}
		for(int i = 0 ; i< 4; i++) {
			for(int j = 0; j < 13; j++) {
				if(!l[i][j]) {
					System.out.println(xx[i] + " " + (j+1));
				}
			}
		}
	} main {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		boolean[][] l = new boolean[4][13];
		for(int i = 0; i < n; i++) {
			char k = sc.next().charAt(0);
			int r = sc.nextInt();
			if(k == 'S') {
				l[0][r-1] = true;
			}
			if(k == 'H') {
				l[1][r-1] = true;
			}
			if(k == 'C') {
				l[2][r-1] = true;
			}
			if(k == 'D') {
				l[3][r-1] = true;
			}
		}
		for(int i = 0 ; i< 4; i++) {
			for(int j = 0; j < 13; j++) {
				if(!l[i][j]) {
					System.out.println(xx[i] + " " + (j+1));
				}
			}
		}
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = sc.nextInt(); n sc.nextInt() sc.nextInt sc boolean[][] l = new boolean[4][13]; l new boolean[4][13] 4 13 for(int i = 0; i < n; i++) {
			char k = sc.next().charAt(0);
			int r = sc.nextInt();
			if(k == 'S') {
				l[0][r-1] = true;
			}
			if(k == 'H') {
				l[1][r-1] = true;
			}
			if(k == 'C') {
				l[2][r-1] = true;
			}
			if(k == 'D') {
				l[3][r-1] = true;
			}
		} int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
			char k = sc.next().charAt(0);
			int r = sc.nextInt();
			if(k == 'S') {
				l[0][r-1] = true;
			}
			if(k == 'H') {
				l[1][r-1] = true;
			}
			if(k == 'C') {
				l[2][r-1] = true;
			}
			if(k == 'D') {
				l[3][r-1] = true;
			}
		} {
			char k = sc.next().charAt(0);
			int r = sc.nextInt();
			if(k == 'S') {
				l[0][r-1] = true;
			}
			if(k == 'H') {
				l[1][r-1] = true;
			}
			if(k == 'C') {
				l[2][r-1] = true;
			}
			if(k == 'D') {
				l[3][r-1] = true;
			}
		} char k = sc.next().charAt(0); k sc.next().charAt(0) sc.next().charAt sc.next() sc.next sc 0 int r = sc.nextInt(); r sc.nextInt() sc.nextInt sc if(k == 'S') {
				l[0][r-1] = true;
			} k == 'S' k 'S' {
				l[0][r-1] = true;
			} l[0][r-1] = true l[0][r-1] l[0] l 0 r-1 r 1 true if(k == 'H') {
				l[1][r-1] = true;
			} k == 'H' k 'H' {
				l[1][r-1] = true;
			} l[1][r-1] = true l[1][r-1] l[1] l 1 r-1 r 1 true if(k == 'C') {
				l[2][r-1] = true;
			} k == 'C' k 'C' {
				l[2][r-1] = true;
			} l[2][r-1] = true l[2][r-1] l[2] l 2 r-1 r 1 true if(k == 'D') {
				l[3][r-1] = true;
			} k == 'D' k 'D' {
				l[3][r-1] = true;
			} l[3][r-1] = true l[3][r-1] l[3] l 3 r-1 r 1 true for(int i = 0 ; i< 4; i++) {
			for(int j = 0; j < 13; j++) {
				if(!l[i][j]) {
					System.out.println(xx[i] + " " + (j+1));
				}
			}
		} int i = 0 ; int i = 0 ; i 0 i< 4 i 4 i++ i++ i {
			for(int j = 0; j < 13; j++) {
				if(!l[i][j]) {
					System.out.println(xx[i] + " " + (j+1));
				}
			}
		} {
			for(int j = 0; j < 13; j++) {
				if(!l[i][j]) {
					System.out.println(xx[i] + " " + (j+1));
				}
			}
		} for(int j = 0; j < 13; j++) {
				if(!l[i][j]) {
					System.out.println(xx[i] + " " + (j+1));
				}
			} int j = 0; int j = 0; j 0 j < 13 j 13 j++ j++ j {
				if(!l[i][j]) {
					System.out.println(xx[i] + " " + (j+1));
				}
			} {
				if(!l[i][j]) {
					System.out.println(xx[i] + " " + (j+1));
				}
			} if(!l[i][j]) {
					System.out.println(xx[i] + " " + (j+1));
				} !l[i][j] l[i][j] l[i] l i j {
					System.out.println(xx[i] + " " + (j+1));
				} System.out.println(xx[i] + " " + (j+1)) System.out.println System.out System System.out xx[i] + " " + (j+1) xx[i] + " " + (j+1) xx[i] xx i " " (j+1) j 1 String[] args args
import java.awt.*;
import java.awt.geom.*;
import java.io.*;

import java.util.*;
class Main {

	static char[] xx = new char[] {'S','H','C','D'};
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		boolean[][] l = new boolean[4][13];
		for(int i = 0; i < n; i++) {
			char k = sc.next().charAt(0);
			int r = sc.nextInt();
			if(k == 'S') {
				l[0][r-1] = true;
			}
			if(k == 'H') {
				l[1][r-1] = true;
			}
			if(k == 'C') {
				l[2][r-1] = true;
			}
			if(k == 'D') {
				l[3][r-1] = true;
			}
		}
		for(int i = 0 ; i< 4; i++) {
			for(int j = 0; j < 13; j++) {
				if(!l[i][j]) {
					System.out.println(xx[i] + " " + (j+1));
				}
			}
		}
	}
}