#include #include using namespace std; int main ( void ) { unsigned int size; while ( cin >> size ) { unsigned int badrow = 0; char c; set first; set second; set clubs; char ** table = new char * [ size ]; for ( unsigned int i = 0 ; i < size ; i ++ ) table [ i ] = new char [ size ]; for ( unsigned int i = 0 ; i < size ; i ++ ) { cin >> c; table [ 0 ][ i ] = c; if ( first . count ( c ) ) badrow = 0; first . insert ( c ); } for ( unsigned int i = 0 ; i < size ; i ++ ) { cin >> c; table [ 1 ][ i ] = c; if ( second . count ( c ) ) badrow = 1; second . insert ( c ); if ( first . count ( c ) ) clubs . insert ( c ); else badrow = 1; } for ( unsigned int i = 0 ; i < size ; i ++ ) { set row; cin >> c; table [ 2 ][ i ] = c; if ( row . count ( c ) ) badrow = 2; row . insert ( c ); if ( first . count ( c ) || second . count ( c ) ) clubs . insert ( c ); else badrow = 2; } for ( unsigned int i = 3 ; i < size ; i ++ ) { set row; for ( unsigned int j = 0 ; j < size ; j ++ ) { cin >> c; table [ i ][ j ] = c; if ( row . count ( c ) ) badrow = i; if ( !clubs . count ( c ) ) badrow = i; row . insert ( c ); } } /* for ( unsigned int i = 0 ; i < size ; i ++ ) { for ( unsigned int j = 0 ; j < size ; j ++ ) { cout << table [ i ][ j ]; } cout << endl; } */ if ( badrow < 3 ) { int bad = 0; set row; for ( unsigned int i = 0 ; i < size ; i ++ ) { if ( row . count ( table [ badrow ][ i ] ) ) bad = badrow; if ( !clubs . count ( table [ badrow ][ i ] ) ) bad = badrow; row . insert ( table [ badrow][ i ] ); } badrow = bad; } int badcolumn = -1; char badclub = 0; set row; for ( unsigned int i = 0 ; i < size ; i ++ ) { if ( row . count ( table [ badrow ][ i ] ) ) { for ( unsigned int j = 0 ; j < size ; j ++ ) { if ( table [ j ][ i ] == table [ badrow ][ i ] && badrow != j ) badcolumn = i; } if ( badcolumn == -1 ) { badcolumn = 0; for ( unsigned int j = 0 ; j < i ; j ++ ) { if ( table [ badrow ][ j ] == table [ badrow ][ i ] ) badcolumn = j; } } } row . insert ( table [ badrow ][ i ] ); if ( ! clubs . count ( table [ badrow ][ i ] ) ) { badcolumn = i; } } for ( set::iterator it = clubs.begin(); it != clubs.end(); ++it ) { if ( !row . count ( *it ) ) badclub = *it; } cout << badrow + 1 << " " << badcolumn + 1 << " " << badclub << endl; for ( unsigned int i = 0 ; i < size ; i ++ ) delete [] table [ i ]; delete [] table; } return 0; }