1 #include<iostream>
2 #include<cstdio>
3 #include<cstring>
4 #include<string>
5 #include<fstream>
6 #include<algorithm>
7 #define MAXN 105
8 using namespace std;
9 typedef struct{
10 int num[10], a, b;
11 char str[10];
12 void Switch(){
13 for(int i = 0; i < 4; i ++)
14 num[i] = str[i]-'0';
15 }
16 }Gusse;
17 Gusse gg[MAXN];
18 int ans[10], target[10], flag, N;
19 bool Is_In_num(int i){
20 int num1[10], num2[10], cnt = 0;
21 memset(num1, 0, sizeof(num1));
22 memset(num2, 0, sizeof(num2));
23 for(int j = 0; j < 4; j ++) num1[ans[j]]++;
24 for(int j = 0; j < 4; j ++) num2[gg[i].num[j]]++;
25 for(int j = 0; j < 10;j ++) if(num1[j] && num2[j]) cnt += min(num1[j], num2[j]);
26 return cnt == gg[i].a;
27 }
28 bool Is_Ok_num(int i){
29 int cnt = 0;
30 for(int j = 0; j < 4; j ++)
31 if(ans[j] == gg[i].num[j]) cnt++;
32 return cnt == gg[i].b;
33 }
34 bool OK(){
35 for(int i = 0; i < N; i ++)
36 if(!Is_In_num(i) || !Is_Ok_num(i)) return false;
37 return true;
38 }
39 void dfs(int cnt){
40 if(cnt == 4){
41 if(OK()){
42 flag++;
43 for(int i = 0; i < 4; i ++) target[i] = ans[i];
44 }
45 return ;
46 }
47 for(int i = 0; i < 10; i ++){
48 if((cnt + i)){
49 ans[cnt] = i;
50 dfs(cnt+1);
51 }
52 }
53 }
54 int main(){
55 freopen("in.c", "r", stdin);
56 while(~scanf("%d", &N) && N){
57 for(int i = 0; i < N; i ++){
58 scanf("%s%d%d", gg[i].str, &gg[i].a, &gg[i].b);
59 gg[i].Switch();
60 }
61 flag = 0;
62 dfs(0);
63 if(flag != 1) printf("Not sure\n");
64 else{
65 for(int i = 0; i < 3; i ++) printf("%d", target[i]);
66 printf("%d\n", target[3]);
67 }
68 }
69 return 0;
70 }