2
2 6 8 1 3 1
2 1 3 8 6 7
 2
1 8 9 1 1 0
2 3 4 5 6 7
 2
0 2 9 8 1 7
6 7 4 3 2 5
 3
9 4 6 2 7 0
3 7 1 9 6 4
6 1 0 8 7 2
 3
2 7 4 0 7 1
5 5 4 9 1 4
2 1 7 5 1 7
 3
5 1 2 9 6 4
9 0 6 4 2 8
4 6 2 8 3 7
 3
1 1 1 0 2 3
4 5 6 7 8 9
0 0 0 0 0 0
 1
1 9 8 3 7 8
 3
2 6 3 7 1 0
9 1 2 4 7 6
1 4 8 7 6 2
 1
4 6 9 8 2 7
 2
1 7 6 9 2 5
1 6 7 0 9 2
 3
4 1 0 8 0 2
1 5 3 5 0 7
7 7 2 7 2 2
 1
7 6 5 8 9 0
 3
3 8 3 5 5 5
3 0 1 6 6 3
0 4 3 7 2 4
 1
8 1 9 2 9 7
 2
2 0 5 7 0 8
4 5 1 5 4 9
 3
1 1 1 1 1 1
0 2 3 4 5 6
7 8 9 2 3 4
 3
0 1 1 2 2 3
4 5 6 7 8 9
3 4 5 6 7 1
 1
0 8 7 1 3 2
 2
9 3 3 6 7 2
6 2 9 1 5 9
 1
8 2 7 4 1 0
 2
3 6 8 9 5 0
6 7 0 8 2 3
 1
0 1 2 3 4 5
 3
3 4 5 6 8 9
1 1 1 1 1 1
1 2 4 5 7 0
 2
2 3 5 1 9 6
1 6 8 7 3 9
 2
0 9 5 7 6 2
8 6 2 7 1 4
 2
4 3 8 6 0 1
4 7 1 8 9 0
 1
6 2 8 4 5 1
 1
4 0 9 6 3 1
 2
6 0 1 7 2 9
1 3 4 6 7 0
 3
5 0 7 6 2 1
2 7 4 6 1 9
0 2 6 1 7 5
 3
0 1 1 2 2 3
4 5 6 7 8 9
3 4 5 6 7 8
 3
0 1 2 3 4 5
0 1 2 3 4 5
0 1 2 3 4 5
 2
2 4 0 3 7 6
3 2 8 7 1 5
 1
7 3 6 9 8 1
 3
1 1 2 3 4 5
6 7 8 9 0 2
3 4 5 6 7 8
 3
9 4 3 0 2 6
7 0 5 3 3 9
1 0 7 4 6 7
 1
3 7 7 6 4 2
 3
2 5 7 4 2 7
1 5 5 9 0 3
8 2 0 1 5 1
 2
1 7 8 6 0 9
3 2 1 7 4 9
 2
0 8 6 2 1 3
5 2 7 1 0 9
 2
5 3 2 9 8 2
0 7 4 8 1 8
 3
3 8 5 1 5 5
1 5 7 2 6 9
4 3 4 8 8 9
 2
5 1 2 3 0 8
3 6 7 4 9 2
 2
0 1 2 3 4 5
6 7 8 9 1 2
 1
5 3 8 0 2 6
 1
0 7 6 3 2 4
 2
8 0 6 5 1 4
7 1 0 8 3 4
 2
7 8 6 1 4 5
8 6 4 3 2 5
 2
0 1 2 3 4 5
6 6 6 7 8 9
 3
9 3 1 8 4 6
6 9 1 2 0 7
8 9 1 5 0 3
 3
0 6 2 9 5 4
3 8 0 1 6 9
6 9 0 1 5 2
 3
0 1 2 2 4 5
6 7 8 9 0 1
3 3 4 5 6 7
 1
1 4 5 7 0 5
 2
8 6 4 1 2 0
7 8 5 3 2 1
 3
5 6 2 9 3 5
5 4 1 5 9 8
4 4 2 0 3 5
 1
9 8 1 6 5 7
 3
7 2 1 3 6 9
0 3 8 4 7 6
1 4 5 8 7 0
 3
9 4 3 3 9 3
1 0 3 4 5 3
2 9 6 2 4 1
 3
1 2 3 7 8 9
9 8 7 1 2 3
7 9 2 3 1 8
 3
8 1 8 2 7 1
9 1 9 9 4 7
0 0 9 0 4 0
 1
2 5 9 6 7 9
 3
4 6 0 3 9 2
8 6 9 0 7 2
6 9 3 2 5 7
 3
8 6 0 5 4 9
1 8 5 3 9 7
7 4 5 1 6 8
 1
8 6 0 9 4 2
 1
7 9 2 5 0 4
 1
6 0 7 5 4 8
 2
5 8 4 7 1 2
0 8 6 2 4 9
 1
5 2 2 5 6 7
 2
6 5 2 7 1 3
3 7 8 1 0 9
 1
8 3 5 4 2 9
 3
0 1 2 3 4 5
6 7 8 9 1 2
3 4 5 6 7 8
 2
6 6 4 7 9 0
2 1 2 8 6 4
 3
2 3 4 5 6 7
3 4 5 6 7 8
9 1 2 3 4 5
 2
0 1 2 3 4 5
4 5 6 7 8 9
 3
2 7 3 6 4 5
0 2 1 9 4 8
8 6 9 5 4 0
 2
0 1 2 3 4 5
6 7 8 9 6 6
 2
1 7 2 0 4 3
5 2 3 6 1 0
 1
6 2 8 5 1 3
 3
5 4 8 1 6 7
0 9 3 5 8 6
2 4 7 8 1 3
 1
6 3 1 9 4 9
 3
0 1 9 1 0 8
9 9 3 5 6 2
9 3 9 9 7 3
 3
8 1 6 8 6 8
7 0 2 5 8 4
5 2 0 3 1 9
 3
2 0 1 3 4 5
6 7 8 9 1 1
3 4 5 6 6 7
 3
4 4 5 0 6 6
7 1 6 9 5 4
5 0 4 0 3 9
 2
0 1 2 3 4 5
9 8 7 6 5 4
 2
0 2 9 1 8 5
0 7 4 3 2 5
 2
2 3 9 1 6 7
2 5 4 3 0 6
 2
5 7 4 2 1 9
2 2 7 1 1 8
 1
3 9 1 7 4 5
 3
7 7 2 5 3 2
3 0 0 6 4 4
1 2 1 1 9 1
 1
7 9 5 0 4 6
 3
7 1 3 0 2 4
2 4 3 0 9 5
1 9 8 0 6 5
 1
4 3 8 9 2 3

3
 9
 9
 4
 2
 10
 10
 1
 4
 0
 2
 5
 0
 8
 2
 2
 10
 19
 3
 3
 2
 0
 5
 19
 3
 2
 1
 2
 1
 4
 2
 9
 5
 8
 1
 10
 7
 0
 5
 4
 3
 5
 9
 9
 29
 0
 0
 1
 8
 9
 21
 6
 21
 1
 8
 6
 1
 21
 6
 3
 2
 0
 0
 1
 0
 0
 0
 2
 0
 3
 0
 98
 2
 9
 9
 10
 9
 7
 3
 21
 1
 3
 32
 19
 1
 9
 5
 7
 2
 1
 7
 0
 65
 0

#include <bits/stdc++.h>
using namespace std;
inline int nextint() {
  int x;
  scanf("%d", &x);
  return x;
}
inline long long nextll() {
  long long x;
  scanf("%lld", &x);
  return x;
}
template <typename T>
void scanint(T& x) {
  T c = getchar();
  while (((c < 48) || (c > 57)) && (c != '-')) c = getchar();
  bool neg = false;
  if (c == '-') {
    neg = true;
    c = getchar();
  }
  x = 0;
  for (; c < 48 || c > 57; c = getchar())
    ;
  for (; c > 47 && c < 58; c = getchar()) x = (x * 10) + (c - 48);
  if (neg) x = -x;
}
template <typename T>
T min_(T a, T b) {
  return a > b ? b : a;
}
template <typename T, typename... Ts>
T min_(T first, Ts... last) {
  return min_(first, min_(last...));
}
template <typename T>
T max_(T a, T b) {
  return a > b ? b : a;
}
template <typename T, typename... Ts>
T max_(T first, Ts... last) {
  return max_(first, max_(last...));
}
template <class T, class S>
std::ostream& operator<<(std::ostream& os, const std::pair<T, S>& t) {
  os << "(" << t.first << ", " << t.second << ")";
  return os;
}
template <typename T>
ostream& operator<<(ostream& out, const vector<T>& v) {
  out << "[";
  size_t last = v.size() - 1;
  for (size_t i = 0; i < v.size(); ++i) {
    out << v[i];
    if (i != last) out << ", ";
  }
  out << "]";
  return out;
}
template <typename T>
ostream& operator<<(ostream& out, const set<T>& v) {
  out << "{";
  auto last = v.end();
  for (auto i = v.begin(); i != last;) {
    out << *i;
    if (++i != last) out << ", ";
  }
  out << "}";
  return out;
}
template <typename T, typename VAL>
ostream& operator<<(ostream& out, const map<T, VAL>& v) {
  out << "{";
  auto last = v.end();
  for (auto i = v.begin(); i != last;) {
    out << *i;
    if (++i != last) out << ", ";
  }
  out << "}";
  return out;
}
template <typename Arg, typename... Args>
void doPrint(std::ostream& out, Arg&& arg, Args&&... args) {
  out << "<< ";
  out << std::forward<Arg>(arg);
  using expander = int[];
  (void)expander{0, (void(out << ", " << std::forward<Args>(args)), 0)...};
  out << " >>\n";
}
long long pwr(long long base, long long p, long long mod) {
  long long ans = 1;
  while (p) {
    if (p & 1) ans = (ans * base) % mod;
    base = (base * base) % mod;
    p /= 2;
  }
  return ans;
}
long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
long long lcm(long long a, long long b) { return a * (b / gcd(a, b)); }
const long double PI = (long double)(3.1415926535897932384626433832795);
const long long mx_ll = numeric_limits<long long>::max();
const int mx_int = numeric_limits<int>::max();
const int mod = 1e9 + 7;
const int oo = 0x3f3f3f3f;
const long long OO = 0x3f3f3f3f3f3f3f3fll;
const double eps = 1e-9;
const int dx[8] = {0, 1, 0, -1, -1, 1, -1, 1};
const int dy[8] = {1, 0, -1, 0, -1, 1, 1, -1};
const int maxn = 100123;
int n;
int cub[5][10];
int form(int h[], int d[], int u[], int x) {
  int num = 0;
  for (int i = 0; i < (int)(6); i++) {
    for (int j = 0; j < (int)(6); j++) {
      for (int k = 0; k < (int)(6); k++) {
        num = u[k];
        if (num == x) return 1;
        num += d[j] * 10;
        if (num == x) return 1;
        num += h[i] * 100;
        if (num == x) return 1;
      }
    }
  }
  return 0;
}
int make(int x) {
  if (x >= pow(10, n)) return 0;
  if (form(cub[0], cub[1], cub[2], x)) return 1;
  if (form(cub[0], cub[2], cub[1], x)) return 1;
  if (form(cub[1], cub[0], cub[2], x)) return 1;
  if (form(cub[1], cub[2], cub[0], x)) return 1;
  if (form(cub[2], cub[0], cub[1], x)) return 1;
  if (form(cub[2], cub[1], cub[0], x)) return 1;
  return 0;
}
int solve() {
  int x = 0;
  while (make(x + 1)) x++;
  return x;
}
int main() {
  for (int i = 0; i < (int)(3); i++)
    for (int j = 0; j < (int)(6); j++) cub[i][j] = -123456;
  cin >> n;
  for (int i = 0; i < (int)(n); i++) {
    for (int j = 0; j < (int)(6); j++) cin >> cub[i][j];
  }
  cout << solve() << endl;
  return 0;
}
