    import java.io.*;
    import java.util.*;
    import java.math.*;
    import java.lang.*;
     
    public class Main {
    private static int hash(char x) {
    int res;
     
    switch (x) {
    case 'G' : res = 1; break;
    case 'B' : res = 2; break;
    case 'Y' : res = 3; break;
    case 'W' : res = 4; break;
    default : res = 0; break;
    }
     
    return res;
    }
     
    private static int popcount(int x) {
    int res = 0, xx = x;
     
    while (xx > 0) {
    if ((xx & 1) > 0) res ++;
    xx /= 2;
    }
     
    return res;
    }
     
    public static void main(String[] args) {
    InputStream inputStream = System.in;
    OutputStream outputStream = System.out;
    InputReader in = new InputReader(inputStream);
    PrintWriter out = new PrintWriter(outputStream);
     
    String s;
    int[][] st = new int[6][6];
    int[][] cnt = new int[6][6];
    int m, h = 0, v = 0, n;
     
    n = in.nextInt();
     
    for (int[] row : st)
    Arrays.fill(row, 0);
     
    while (n > 0) {
    s = in.next();
    st[ hash( s.charAt(0) ) ][ Character.getNumericValue( s.charAt(1) ) ] = 2;
    n--;
    }
     
    for(int i = 0; i < 5; ++i) {
    int meme = 0;
    for(int j = 0; j < 5; ++j)
    if (st[i][j] > 0) meme = 1;
    v += meme;
    }
     
    for(int j = 0; j < 5; ++j) {
    int meme = 0;
    for(int i = 0; i < 5; ++i)
    if (st[i][j] > 0) meme = 1;
    h += meme;
    }
     
    int ans = Integer.MAX_VALUE;
    for(int msk = 0; msk < (1 << 10); msk++) {
    for(int i = 0; i < 5; ++i)
    for(int j = 0; j < 5; ++j)
    cnt[i][j] = st[i][j];
     
    if (v > 1) {
    for(int i = 0; i < 5; ++i)
    if ( ( (1<<i) & msk/32 ) > 0)
    for(int j = 0; j < 5; ++j)
    cnt[i][j]--;
    }
     
    if (h > 1) {
    for(int j = 0; j < 5; ++j)
    if ( ( (1<<j) & msk ) > 0)
    for(int i = 0; i < 5; ++i)
    cnt[i][j]--;
    }
     
    int banjir = 0;
     
    for(int i = 0; i < 5; ++i)
    for(int j = 0; j < 5; ++j)
    if (cnt[i][j] > 1)
    banjir++;
     
    boolean stat = (banjir < 2);
     
    for(int i = 0; i < 5; ++i) {
    if (!stat) break;
    banjir = 0;
    for(int j = 0; j < 5; ++j)
    if (cnt[i][j] == 1)
    banjir++;
    stat = (banjir < 2);
    }
     
    for(int j = 0; j < 5; ++j) {
    if (!stat) break;
    banjir = 0;
    for(int i = 0; i < 5; ++i)
    if (cnt[i][j] == 1)
    banjir++;
    stat = (banjir < 2);
    }
     
    if (stat)
    ans = Math.min(ans, popcount(msk));
    }
     
    out.println(ans);
    out.close();
    }
    }
     
    /* Java Template */
    class InputReader {
    public BufferedReader reader;
    public StringTokenizer tokenizer;
     
    public InputReader(InputStream stream) {
    reader = new BufferedReader(new InputStreamReader(stream), 32768);
    tokenizer = null;
    }
     
    public String next() {
    while (tokenizer == null || !tokenizer.hasMoreTokens()) {
    try {
    tokenizer = new StringTokenizer(reader.readLine());
    } catch (IOException e) {
    throw new RuntimeException(e);
    }
    }
    return tokenizer.nextToken();
    }
     
    public int nextInt() {
    return Integer.parseInt(next());
    }
     
    public long nextLong() {
    return Long.parseLong(next());
    }
    }