#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; //#pragma comment(linker,"/STACK:102400000,102400000") int p8[10]; int has[8][1000011]; string s; char c[1000001]; int MAIN() { p8[0] = 1; for(int i = 1; i <= 8; i++) p8[i] = p8[i-1] * 8; int T; scanf("%d", &T); memset(has, 0, sizeof(has)); while(T--) { scanf("%s", c); int sLen = strlen(c); for(int i = 0; i < sLen; i++) for(int j = 1; j <= 7; j++) if(i+j-1 < sLen) { int v = 0; for(int k = i; k <= i+j-1; k++) { v += (c[k] - 'A') * p8[j-1 -(k-i)]; } if(v <= 1000010) has[j][v] ++; } bool findAns = false; for(int i = 1; i <= 7; i++) { if(findAns) break; for(int j = 0; j < p8[i]; j++) if(has[i][j] == 0) { int val = j; string ans; for(int t = 1; t <= i; t++) { ans = char('A' + val % 8) + ans; val = val / 8; } printf("%s\n", ans.c_str()); //cout << ans << endl; findAns = true; break; } } for(int i = 0; i < sLen; i++) for(int j = 1; j <= 7; j++) if(i+j-1 < sLen) { int v = 0; for(int k = i; k <= i+j-1; k++) { v += (c[k] - 'A') * p8[j-1 -(k-i)]; } if(v <= 1000010) has[j][v] --; } } return 0; } int main() { #ifdef LOCAL_TEST freopen("in.txt", "r", stdin); freopen("out.txt", "w", stdout); #endif //ios :: sync_with_stdio(false); //cout << fixed << setprecision(16); return MAIN(); }