#include <bits/stdc++.h>
using namespace std;
const long long MX5 = 3 * 1e5 + 3;
const long long MX6 = 1 * 1e6 + 37;
const long long INF = 8e18;
const long long MOD = 1e9 + 7;
const long long MOD2 = 998244353;
long long power(long long a, long long b, long long md) {
  return (!b ? 1
             : (b & 1 ? a * power(a * a % md, b / 2, md) % md
                      : power(a * a % md, b / 2, md) % md));
}
long long bmm(long long a, long long b) {
  return (a % b == 0 ? b : bmm(b, a % b));
}
long long A[MX5];
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  string a, b, c;
  cin >> a >> b >> c;
  int a1 = a[0] - '0';
  int a2 = b[0] - '0';
  int a3 = c[0] - '0';
  if (a == b && b == c) {
    cout << 0;
    return 0;
  }
  if (a[1] == b[1]) {
    if (b[1] == c[1]) {
      if (a1 == a2 && a2 == a3) {
        cout << 0;
        return 0;
      }
      if (min({a1, a2, a3}) + 2 == max({a1, a2, a3}) && a1 != a2 && a2 != a3 &&
          a3 != a1) {
        cout << 0;
        return 0;
      }
      if (a1 == a2 || a2 == a3 || a1 == a3) {
        cout << 1;
        return 0;
      }
      if (min({abs(a1 - a2), abs(a1 - a3), abs(a2 - a3)}) == 1 ||
          min({abs(a1 - a2), abs(a1 - a3), abs(a2 - a3)}) == 2) {
        cout << 1;
        return 0;
      }
      cout << 2;
      return 0;
    } else {
      if (a1 == a2) {
        cout << 1;
        return 0;
      }
      if (abs(a1 - a2) == 1 || abs(a1 - a2) == 2) {
        cout << 1;
        return 0;
      }
      cout << 2;
      return 0;
    }
  }
  if (a[1] == c[1]) {
    if (a1 == a3) {
      cout << 1;
      return 0;
    }
    if (abs(a1 - a3) == 1 || abs(a1 - a3) == 2) {
      cout << 1;
      return 0;
    }
    cout << 2;
    return 0;
  } else if (b[1] == c[1]) {
    if (a3 == a2) {
      cout << 1;
      return 0;
    }
    if (abs(a3 - a2) == 1 || abs(a3 - a2) == 2) {
      cout << 1;
      return 0;
    }
    cout << 2;
    return 0;
  } else {
    cout << 2;
  }
  return 0;
}
