#include <bits/stdc++.h>
using namespace std;
int a[12], b[12];
string s[12];
vector<int> ans;
int main() {
  int i, j, k, l, n, m, p, d1, d2, d3, d4, x1, x2, flag;
  cin >> n;
  for (i = 0; i < n; i++) cin >> s[i] >> a[i] >> b[i];
  for (i = 0; i < 10; i++) {
    for (j = 0; j < 10; j++) {
      if (j == i) continue;
      for (k = 0; k < 10; k++) {
        if (k == i || k == j) continue;
        for (l = 0; l < 10; l++) {
          if (l == i || l == j || l == k) continue;
          for (m = 0, flag = 1; m < n; m++) {
            x1 = 0;
            x2 = 0;
            d1 = s[m][0] - 48;
            d2 = s[m][1] - 48;
            d3 = s[m][2] - 48;
            d4 = s[m][3] - 48;
            if (d1 == i)
              x1++;
            else if (d1 == j || d1 == k || d1 == l)
              x2++;
            if (d2 == j)
              x1++;
            else if (d2 == i || d2 == k || d2 == l)
              x2++;
            if (d3 == k)
              x1++;
            else if (d3 == j || d3 == i || d3 == l)
              x2++;
            if (d4 == l)
              x1++;
            else if (d4 == j || d4 == k || d4 == i)
              x2++;
            if (x1 != a[m] || x2 != b[m]) {
              flag = 0;
              break;
            }
          }
          if (flag) ans.push_back(1000 * i + 100 * j + 10 * k + l);
        }
      }
    }
  }
  if (ans.size() == 1) {
    if (ans[0] < 1000)
      cout << "0" << ans[0] << "\n";
    else
      cout << ans[0] << "\n";
  } else if (ans.size() > 1)
    cout << "Need more data\n";
  else
    cout << "Incorrect data\n";
  return 0;
}
