#include <bits/stdc++.h>
using namespace std;
void addmod(int &a, long long b) {
  a = (a + b);
  if (a >= 1000000007) a -= 1000000007;
}
void mulmod(int &a, long long b) { a = (a * b) % 1000000007; }
template <class T>
bool domin(T &a, const T &b) {
  return a > b ? a = b, 1 : 0;
}
template <class T>
bool domax(T &a, const T &b) {
  return a < b ? a = b, 1 : 0;
}
int gi() {
  int a;
  scanf("%d", &a);
  return a;
}
long long gll() {
  long long a;
  scanf("%lld", &a);
  return a;
}
int n;
int a[4][10];
int main() {
  cin >> n;
  vector<int> ix;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < 6; j++) {
      cin >> a[i][j];
    }
    ix.push_back(i);
  }
  set<int> poss;
  do {
    for (int i = 0; i < 6; i++) {
      int v = a[ix[0]][i];
      poss.insert(v);
      if (n == 1) {
        continue;
      }
      for (int j = 0; j < 6; j++) {
        int va = v * 10 + a[ix[1]][j];
        poss.insert(va);
        if (n == 2) {
          continue;
        }
        for (int k = 0; k < 6; k++) {
          int vb = va * 10 + (a[ix[2]][k]);
          poss.insert(vb);
        }
      }
    }
  } while (next_permutation(ix.begin(), ix.end()));
  int ans = 0;
  while (poss.find(ans + 1) != poss.end()) ans++;
  cout << ans << endl;
  return 0;
}
