import java.util.Scanner; /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ /** * * @author cteam056 */ public class Tribune { public static void main(String[] args) { Scanner s = new Scanner(System.in); while(s.hasNextInt()){ int n = s.nextInt(); int[] field = new int[26]; char[][] ch = new char[n][n]; for (int a = 0; a < n; a++) { String b = s.next(); for (int v = 0; v < n; v++) { ch[a][v] = b.charAt(v); } } int[] vyskyt = new int[26]; for (int x = 0; x < n; x++) { for (int y = 0; y < n; y++) { //vyskyt[new Character(ch[x][y]).]++; switch (ch[x][y]) { case 'A': vyskyt[0]++; break; case 'B': vyskyt[1]++; break; case 'C': vyskyt[2]++; break; case 'D': vyskyt[3]++; break; case 'E': vyskyt[4]++; break; case 'F': vyskyt[5]++; break; case 'G': vyskyt[6]++; break; case 'H': vyskyt[7]++; break; case 'I': vyskyt[8]++; break; case 'J': vyskyt[9]++; break; case 'K': vyskyt[10]++; break; case 'L': vyskyt[11]++; break; case 'M': vyskyt[12]++; break; case 'N': vyskyt[13]++; break; case 'O': vyskyt[14]++; break; case 'P': vyskyt[15]++; break; case 'Q': vyskyt[16]++; break; case 'R': vyskyt[17]++; break; case 'S': vyskyt[18]++; break; case 'T': vyskyt[19]++; break; case 'U': vyskyt[20]++; break; case 'V': vyskyt[21]++; break; case 'W': vyskyt[22]++; break; case 'X': vyskyt[23]++; break; case 'Y': vyskyt[24]++; break; case 'Z': vyskyt[25]++; break; } } } for (int z = 0; z < vyskyt.length; z++) { main: { if (vyskyt[z] == 1) { char invalid = (char) (z + 'A'); for (int x = 0; x < n; x++) { for (int y = 0; y < n; y++) { if (ch[x][y] == invalid) { char valid = 'ř'; for (int h = 0; h < 26; h++) { if (vyskyt[h] == n - 1) { valid = (char) (h + 'A'); } } System.out.println((x + 1) + " " + (y + 1) + " " + valid); break main; } } } } else if (vyskyt[z] == n + 1) { int invalidY = 0; int pY1 = 0; int pY2 = 0; int pX1 = 0; int pX2 = 0; semi: { for (int x = 0; x < n; x++) { int counter = 0; for (int y = 0; y < n; y++) { if (ch[x][y] == (char) (z + 'A')) { counter++; if (counter == 1) { pY1 = y; pX1=x; } else if (counter == 2) { pY2 = y; pX2=x; break semi; } } } } } int counter = 0; for (int x = 0; x < n; x++) { if (ch[x][pY1] == (char) (z + 'A')) { counter++; if (counter == 2) { char valid = 'ř'; for (int h = 0; h < 26; h++) { if (vyskyt[h] == n - 1) { valid = (char) (h + 'A'); } } System.out.println((pX1 + 1) + " " + (pY1 + 1) + " " + valid); break main; } } } counter = 0; for (int x = 0; x < n; x++) { if (ch[x][pY2] == (char) (z + 'A')) { counter++; if (counter == 2) { char valid = 'ř'; for (int h = 0; h < 26; h++) { if (vyskyt[h] == n - 1) { valid = (char) (h + 'A'); } } System.out.println((pX2 + 1) + " " + (pY2 + 1) + " " + valid); break main; } } } } } } } } } //'