import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.StringTokenizer;

public class Main {
  static InputReader in;
  static PrintWriter out;

  static class Solution {
    void solve() throws IOException {
      char[] suit = new char[5];
      suit[1] = 'S';
      suit[2] = 'H';
      suit[3] = 'C';
      suit[4] = 'D';
      int n = in.nextInt();
      
      int[][] card = new int[5][14];
      for (int i = 1; i <= n; i++) {
        char tmpsuit = in.next().charAt(0);
        int num = in.nextInt();
        
        switch (tmpsuit) {
          case 'S':
            card[1][num] = 1;
            break;
          case 'H':
            card[2][num] = 1;
            break;
          case 'C':
            card[3][num] = 1;
            break;
          case 'D':
            card[4][num] = 1;
            break;
        }
        
      }
      
      for (int i = 1; i <= 4; i++) {
        for (int j = 1; j <= 13; j++) {
          if (card[i][j] != 1) {
            out.println(suit[i]+" "+j);
          }
        }
      }
//    End solve()
    }
//    End Solution
}

  public static void main(String[] args) throws IOException {
    in = new InputReader(System.in);
    out = new PrintWriter(System.out);
    Solution solver = new Solution();
    solver.solve();
    out.close();
}

  static class InputReader {
    public BufferedReader br;
    public StringTokenizer st;

    public InputReader(InputStream stream) {
      br = new BufferedReader(new InputStreamReader(stream));
    }

    public int nextInt() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Integer.parseInt(st.nextToken());
    }

    public long nextLong() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Long.parseLong(st.nextToken());
    }

    public String next() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return st.nextToken();
    }

    public double nextDouble() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Double.parseDouble(st.nextToken());
    }

     
  }

} import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStream; InputStream java.io import java.io.InputStreamReader; InputStreamReader java.io import java.io.PrintWriter; PrintWriter java.io import java.util.StringTokenizer; StringTokenizer java.util public class Main {
  static InputReader in;
  static PrintWriter out;

  static class Solution {
    void solve() throws IOException {
      char[] suit = new char[5];
      suit[1] = 'S';
      suit[2] = 'H';
      suit[3] = 'C';
      suit[4] = 'D';
      int n = in.nextInt();
      
      int[][] card = new int[5][14];
      for (int i = 1; i <= n; i++) {
        char tmpsuit = in.next().charAt(0);
        int num = in.nextInt();
        
        switch (tmpsuit) {
          case 'S':
            card[1][num] = 1;
            break;
          case 'H':
            card[2][num] = 1;
            break;
          case 'C':
            card[3][num] = 1;
            break;
          case 'D':
            card[4][num] = 1;
            break;
        }
        
      }
      
      for (int i = 1; i <= 4; i++) {
        for (int j = 1; j <= 13; j++) {
          if (card[i][j] != 1) {
            out.println(suit[i]+" "+j);
          }
        }
      }
//    End solve()
    }
//    End Solution
}

  public static void main(String[] args) throws IOException {
    in = new InputReader(System.in);
    out = new PrintWriter(System.out);
    Solution solver = new Solution();
    solver.solve();
    out.close();
}

  static class InputReader {
    public BufferedReader br;
    public StringTokenizer st;

    public InputReader(InputStream stream) {
      br = new BufferedReader(new InputStreamReader(stream));
    }

    public int nextInt() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Integer.parseInt(st.nextToken());
    }

    public long nextLong() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Long.parseLong(st.nextToken());
    }

    public String next() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return st.nextToken();
    }

    public double nextDouble() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Double.parseDouble(st.nextToken());
    }

     
  }

} Main static InputReader in; in static PrintWriter out; out public static void main(String[] args) throws IOException {
    in = new InputReader(System.in);
    out = new PrintWriter(System.out);
    Solution solver = new Solution();
    solver.solve();
    out.close();
} main {
    in = new InputReader(System.in);
    out = new PrintWriter(System.out);
    Solution solver = new Solution();
    solver.solve();
    out.close();
} in = new InputReader(System.in) in new InputReader(System.in) out = new PrintWriter(System.out) out new PrintWriter(System.out) Solution solver = new Solution(); solver new Solution() solver.solve() solver.solve solver out.close() out.close out String[] args args static class Solution {
    void solve() throws IOException {
      char[] suit = new char[5];
      suit[1] = 'S';
      suit[2] = 'H';
      suit[3] = 'C';
      suit[4] = 'D';
      int n = in.nextInt();
      
      int[][] card = new int[5][14];
      for (int i = 1; i <= n; i++) {
        char tmpsuit = in.next().charAt(0);
        int num = in.nextInt();
        
        switch (tmpsuit) {
          case 'S':
            card[1][num] = 1;
            break;
          case 'H':
            card[2][num] = 1;
            break;
          case 'C':
            card[3][num] = 1;
            break;
          case 'D':
            card[4][num] = 1;
            break;
        }
        
      }
      
      for (int i = 1; i <= 4; i++) {
        for (int j = 1; j <= 13; j++) {
          if (card[i][j] != 1) {
            out.println(suit[i]+" "+j);
          }
        }
      }
//    End solve()
    }
//    End Solution
} Solution void solve() throws IOException {
      char[] suit = new char[5];
      suit[1] = 'S';
      suit[2] = 'H';
      suit[3] = 'C';
      suit[4] = 'D';
      int n = in.nextInt();
      
      int[][] card = new int[5][14];
      for (int i = 1; i <= n; i++) {
        char tmpsuit = in.next().charAt(0);
        int num = in.nextInt();
        
        switch (tmpsuit) {
          case 'S':
            card[1][num] = 1;
            break;
          case 'H':
            card[2][num] = 1;
            break;
          case 'C':
            card[3][num] = 1;
            break;
          case 'D':
            card[4][num] = 1;
            break;
        }
        
      }
      
      for (int i = 1; i <= 4; i++) {
        for (int j = 1; j <= 13; j++) {
          if (card[i][j] != 1) {
            out.println(suit[i]+" "+j);
          }
        }
      }
//    End solve()
    } solve {
      char[] suit = new char[5];
      suit[1] = 'S';
      suit[2] = 'H';
      suit[3] = 'C';
      suit[4] = 'D';
      int n = in.nextInt();
      
      int[][] card = new int[5][14];
      for (int i = 1; i <= n; i++) {
        char tmpsuit = in.next().charAt(0);
        int num = in.nextInt();
        
        switch (tmpsuit) {
          case 'S':
            card[1][num] = 1;
            break;
          case 'H':
            card[2][num] = 1;
            break;
          case 'C':
            card[3][num] = 1;
            break;
          case 'D':
            card[4][num] = 1;
            break;
        }
        
      }
      
      for (int i = 1; i <= 4; i++) {
        for (int j = 1; j <= 13; j++) {
          if (card[i][j] != 1) {
            out.println(suit[i]+" "+j);
          }
        }
      }
//    End solve()
    } char[] suit = new char[5]; suit new char[5] 5 suit[1] = 'S' suit[1] suit 1 'S' suit[2] = 'H' suit[2] suit 2 'H' suit[3] = 'C' suit[3] suit 3 'C' suit[4] = 'D' suit[4] suit 4 'D' int n = in.nextInt(); n in.nextInt() in.nextInt in int[][] card = new int[5][14]; card new int[5][14] 5 14 for (int i = 1; i <= n; i++) {
        char tmpsuit = in.next().charAt(0);
        int num = in.nextInt();
        
        switch (tmpsuit) {
          case 'S':
            card[1][num] = 1;
            break;
          case 'H':
            card[2][num] = 1;
            break;
          case 'C':
            card[3][num] = 1;
            break;
          case 'D':
            card[4][num] = 1;
            break;
        }
        
      } int i = 1; int i = 1; i 1 i <= n i n i++ i++ i {
        char tmpsuit = in.next().charAt(0);
        int num = in.nextInt();
        
        switch (tmpsuit) {
          case 'S':
            card[1][num] = 1;
            break;
          case 'H':
            card[2][num] = 1;
            break;
          case 'C':
            card[3][num] = 1;
            break;
          case 'D':
            card[4][num] = 1;
            break;
        }
        
      } {
        char tmpsuit = in.next().charAt(0);
        int num = in.nextInt();
        
        switch (tmpsuit) {
          case 'S':
            card[1][num] = 1;
            break;
          case 'H':
            card[2][num] = 1;
            break;
          case 'C':
            card[3][num] = 1;
            break;
          case 'D':
            card[4][num] = 1;
            break;
        }
        
      } char tmpsuit = in.next().charAt(0); tmpsuit in.next().charAt(0) in.next().charAt in.next() in.next in 0 int num = in.nextInt(); num in.nextInt() in.nextInt in switch (tmpsuit) {
          case 'S':
            card[1][num] = 1;
            break;
          case 'H':
            card[2][num] = 1;
            break;
          case 'C':
            card[3][num] = 1;
            break;
          case 'D':
            card[4][num] = 1;
            break;
        } tmpsuit case 'S': 'S' case 'S': card[1][num] = 1 card[1][num] card[1] card 1 num 1 break; case 'H': 'H' case 'H': card[2][num] = 1 card[2][num] card[2] card 2 num 1 break; case 'C': 'C' case 'C': card[3][num] = 1 card[3][num] card[3] card 3 num 1 break; case 'D': 'D' case 'D': card[4][num] = 1 card[4][num] card[4] card 4 num 1 break; for (int i = 1; i <= 4; i++) {
        for (int j = 1; j <= 13; j++) {
          if (card[i][j] != 1) {
            out.println(suit[i]+" "+j);
          }
        }
      } int i = 1; int i = 1; i 1 i <= 4 i 4 i++ i++ i {
        for (int j = 1; j <= 13; j++) {
          if (card[i][j] != 1) {
            out.println(suit[i]+" "+j);
          }
        }
      } {
        for (int j = 1; j <= 13; j++) {
          if (card[i][j] != 1) {
            out.println(suit[i]+" "+j);
          }
        }
      } for (int j = 1; j <= 13; j++) {
          if (card[i][j] != 1) {
            out.println(suit[i]+" "+j);
          }
        } int j = 1; int j = 1; j 1 j <= 13 j 13 j++ j++ j {
          if (card[i][j] != 1) {
            out.println(suit[i]+" "+j);
          }
        } {
          if (card[i][j] != 1) {
            out.println(suit[i]+" "+j);
          }
        } if (card[i][j] != 1) {
            out.println(suit[i]+" "+j);
          } card[i][j] != 1 card[i][j] card[i] card i j 1 {
            out.println(suit[i]+" "+j);
          } out.println(suit[i]+" "+j) out.println out suit[i]+" "+j suit[i]+" "+j suit[i] suit i " " j static class InputReader {
    public BufferedReader br;
    public StringTokenizer st;

    public InputReader(InputStream stream) {
      br = new BufferedReader(new InputStreamReader(stream));
    }

    public int nextInt() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Integer.parseInt(st.nextToken());
    }

    public long nextLong() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Long.parseLong(st.nextToken());
    }

    public String next() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return st.nextToken();
    }

    public double nextDouble() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Double.parseDouble(st.nextToken());
    }

     
  } InputReader public BufferedReader br; br public StringTokenizer st; st public InputReader(InputStream stream) {
      br = new BufferedReader(new InputStreamReader(stream));
    } InputReader {
      br = new BufferedReader(new InputStreamReader(stream));
    } br = new BufferedReader(new InputStreamReader(stream)) br new BufferedReader(new InputStreamReader(stream)) InputStream stream stream public int nextInt() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Integer.parseInt(st.nextToken());
    } nextInt {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Integer.parseInt(st.nextToken());
    } while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      } st == null || !st.hasMoreTokens() st == null st null !st.hasMoreTokens() st.hasMoreTokens() st.hasMoreTokens st {
        st = new StringTokenizer(br.readLine());
      } st = new StringTokenizer(br.readLine()) st new StringTokenizer(br.readLine()) return Integer.parseInt(st.nextToken()); Integer.parseInt(st.nextToken()) Integer.parseInt Integer st.nextToken() st.nextToken st public long nextLong() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Long.parseLong(st.nextToken());
    } nextLong {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Long.parseLong(st.nextToken());
    } while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      } st == null || !st.hasMoreTokens() st == null st null !st.hasMoreTokens() st.hasMoreTokens() st.hasMoreTokens st {
        st = new StringTokenizer(br.readLine());
      } st = new StringTokenizer(br.readLine()) st new StringTokenizer(br.readLine()) return Long.parseLong(st.nextToken()); Long.parseLong(st.nextToken()) Long.parseLong Long st.nextToken() st.nextToken st public String next() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return st.nextToken();
    } next {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return st.nextToken();
    } while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      } st == null || !st.hasMoreTokens() st == null st null !st.hasMoreTokens() st.hasMoreTokens() st.hasMoreTokens st {
        st = new StringTokenizer(br.readLine());
      } st = new StringTokenizer(br.readLine()) st new StringTokenizer(br.readLine()) return st.nextToken(); st.nextToken() st.nextToken st public double nextDouble() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Double.parseDouble(st.nextToken());
    } nextDouble {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Double.parseDouble(st.nextToken());
    } while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      } st == null || !st.hasMoreTokens() st == null st null !st.hasMoreTokens() st.hasMoreTokens() st.hasMoreTokens st {
        st = new StringTokenizer(br.readLine());
      } st = new StringTokenizer(br.readLine()) st new StringTokenizer(br.readLine()) return Double.parseDouble(st.nextToken()); Double.parseDouble(st.nextToken()) Double.parseDouble Double st.nextToken() st.nextToken st public class Main {
  static InputReader in;
  static PrintWriter out;

  static class Solution {
    void solve() throws IOException {
      char[] suit = new char[5];
      suit[1] = 'S';
      suit[2] = 'H';
      suit[3] = 'C';
      suit[4] = 'D';
      int n = in.nextInt();
      
      int[][] card = new int[5][14];
      for (int i = 1; i <= n; i++) {
        char tmpsuit = in.next().charAt(0);
        int num = in.nextInt();
        
        switch (tmpsuit) {
          case 'S':
            card[1][num] = 1;
            break;
          case 'H':
            card[2][num] = 1;
            break;
          case 'C':
            card[3][num] = 1;
            break;
          case 'D':
            card[4][num] = 1;
            break;
        }
        
      }
      
      for (int i = 1; i <= 4; i++) {
        for (int j = 1; j <= 13; j++) {
          if (card[i][j] != 1) {
            out.println(suit[i]+" "+j);
          }
        }
      }
//    End solve()
    }
//    End Solution
}

  public static void main(String[] args) throws IOException {
    in = new InputReader(System.in);
    out = new PrintWriter(System.out);
    Solution solver = new Solution();
    solver.solve();
    out.close();
}

  static class InputReader {
    public BufferedReader br;
    public StringTokenizer st;

    public InputReader(InputStream stream) {
      br = new BufferedReader(new InputStreamReader(stream));
    }

    public int nextInt() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Integer.parseInt(st.nextToken());
    }

    public long nextLong() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Long.parseLong(st.nextToken());
    }

    public String next() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return st.nextToken();
    }

    public double nextDouble() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Double.parseDouble(st.nextToken());
    }

     
  }

} public class Main {
  static InputReader in;
  static PrintWriter out;

  static class Solution {
    void solve() throws IOException {
      char[] suit = new char[5];
      suit[1] = 'S';
      suit[2] = 'H';
      suit[3] = 'C';
      suit[4] = 'D';
      int n = in.nextInt();
      
      int[][] card = new int[5][14];
      for (int i = 1; i <= n; i++) {
        char tmpsuit = in.next().charAt(0);
        int num = in.nextInt();
        
        switch (tmpsuit) {
          case 'S':
            card[1][num] = 1;
            break;
          case 'H':
            card[2][num] = 1;
            break;
          case 'C':
            card[3][num] = 1;
            break;
          case 'D':
            card[4][num] = 1;
            break;
        }
        
      }
      
      for (int i = 1; i <= 4; i++) {
        for (int j = 1; j <= 13; j++) {
          if (card[i][j] != 1) {
            out.println(suit[i]+" "+j);
          }
        }
      }
//    End solve()
    }
//    End Solution
}

  public static void main(String[] args) throws IOException {
    in = new InputReader(System.in);
    out = new PrintWriter(System.out);
    Solution solver = new Solution();
    solver.solve();
    out.close();
}

  static class InputReader {
    public BufferedReader br;
    public StringTokenizer st;

    public InputReader(InputStream stream) {
      br = new BufferedReader(new InputStreamReader(stream));
    }

    public int nextInt() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Integer.parseInt(st.nextToken());
    }

    public long nextLong() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Long.parseLong(st.nextToken());
    }

    public String next() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return st.nextToken();
    }

    public double nextDouble() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Double.parseDouble(st.nextToken());
    }

     
  }

} Main
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.StringTokenizer;

public class Main {
  static InputReader in;
  static PrintWriter out;

  static class Solution {
    void solve() throws IOException {
      char[] suit = new char[5];
      suit[1] = 'S';
      suit[2] = 'H';
      suit[3] = 'C';
      suit[4] = 'D';
      int n = in.nextInt();
      
      int[][] card = new int[5][14];
      for (int i = 1; i <= n; i++) {
        char tmpsuit = in.next().charAt(0);
        int num = in.nextInt();
        
        switch (tmpsuit) {
          case 'S':
            card[1][num] = 1;
            break;
          case 'H':
            card[2][num] = 1;
            break;
          case 'C':
            card[3][num] = 1;
            break;
          case 'D':
            card[4][num] = 1;
            break;
        }
        
      }
      
      for (int i = 1; i <= 4; i++) {
        for (int j = 1; j <= 13; j++) {
          if (card[i][j] != 1) {
            out.println(suit[i]+" "+j);
          }
        }
      }
//    End solve()
    }
//    End Solution
}

  public static void main(String[] args) throws IOException {
    in = new InputReader(System.in);
    out = new PrintWriter(System.out);
    Solution solver = new Solution();
    solver.solve();
    out.close();
}

  static class InputReader {
    public BufferedReader br;
    public StringTokenizer st;

    public InputReader(InputStream stream) {
      br = new BufferedReader(new InputStreamReader(stream));
    }

    public int nextInt() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Integer.parseInt(st.nextToken());
    }

    public long nextLong() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Long.parseLong(st.nextToken());
    }

    public String next() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return st.nextToken();
    }

    public double nextDouble() throws IOException {
      while (st == null || !st.hasMoreTokens()) {
        st = new StringTokenizer(br.readLine());
      }
      return Double.parseDouble(st.nextToken());
    }

     
  }

}