#include using namespace std; #define F(i,L,U) for ((i) = (L); (i) < (U); (i)++) #define FE(i,L,U) for ((i) = (L); (i) <= (U); (i)++) #define LINE(line) fgets(line, sizeof(line), stdin) #define CLR(a) memset(a, 0,sizeof(a)) int main(){ int i,j , N; char t[28][28]; int b[27]; char j_c; char new_c; char line[256]; while (LINE(line)) { CLR(b); N = atoi(line); //~ printf("N = %d\n", N); F(i, 0, N) { LINE(t[i]); //~ printf("%s", t[i]); } F(i, 0, N) { F(j, 0, N) { b[t[i][j] - 'A']++; } } F(i,0,27) { if (b[i] == 1) { j_c = 'A' + i; //~ printf("john %c\n", j_c); //~ break; }else if (b[i] == N-1) { new_c = 'A' + i; //~ printf("john new %c\n", new_c); //~ break; }else if (b[i] == N+1) { j_c = 'A' + i; //~ printf("N+1 john %c\n", j_c); //~ break; } } F(i, 0, N) { int has = -1; F(j, 0, N) { if (t[i][j] == new_c) { has = 1; break; } } if (has == -1) {//neni printf("%d ", i + 1); break; } } F(j, 0, N) { int has = -1; F(i, 0, N) { if (t[i][j] == new_c) { has = 1; break; } } if (has == -1) {//neni printf(" %d ", j+1); break; } } printf("%c\n", new_c); //~ unordered_set h; //~ //~ for(int i = 0; i < N; i++) { //~ vector f; //~ //clear //~ f.resize(10); //~ //~ //~ //~ long long a, tmp; //~ scanf("%lld", &a); //~ //~ tmp = a; //~ //~ while (tmp > 0) { //~ int mod = tmp % 10; //~ //~ f[mod] = 1; //~ //~ tmp /= 10; //~ } //~ //~ int r = 0; //~ //~ for (int j = 0; j < 10; j++) { //~ if (f[j] == 1) { //~ r *= 10; //~ r += 10 - j; //~ } //~ } //~ //~ h.insert(r); //~ } } return 0; }