#include <bits/stdc++.h>
using namespace std;
bool sais[10];
int N;
vector<pair<char, int> > v;
int best = 15;
void teste() {
  for (int i = 0; i < N; i++) {
    for (int j = i + 1; j < N; j++) {
      if (v[i].first != v[j].first && v[i].second != v[j].second) {
        if (!sais[v[i].first] && !sais[v[j].first] && !sais[v[i].second + 5] &&
            !sais[v[j].second + 5])
          return;
      } else if (v[i].first != v[j].first) {
        if (!sais[v[i].first] && !sais[v[j].first]) return;
      } else if (v[i].second != v[j].second) {
        if (!sais[v[i].second + 5] && !sais[v[j].second + 5]) return;
      }
    }
  }
  int compte = 0;
  for (int i = 0; i < 10; i++) {
    if (sais[i]) compte++;
  }
  best = min(best, compte);
  return;
}
void parcours(int x) {
  if (x == 10) {
    teste();
  } else {
    sais[x] = true;
    parcours(x + 1);
    sais[x] = false;
    parcours(x + 1);
  }
}
int main() {
  int correspond[256];
  char c, d;
  correspond['R'] = 0;
  correspond['G'] = 1;
  correspond['B'] = 2;
  correspond['Y'] = 3;
  correspond['W'] = 4;
  scanf("%d\n", &N);
  for (int i = 0; i < N; i++) {
    scanf("%c%c ", &c, &d);
    v.push_back(make_pair(correspond[c], d - '1'));
  }
  parcours(0);
  printf("%d\n", best);
  return 0;
}
