import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Tribune {

	private static int[][] nums;
	private static int pocet;

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String line = br.readLine();

		while (line != null) {
			pocet = Integer.parseInt(line);

			nums = new int[pocet][pocet];
			String l;
			for (int i = 0; i < pocet; i++) {
				l = br.readLine();
				for (int j = 0; j < l.length(); j++) {
					nums[i][j] = l.charAt(j);
				}
			}
			int r1 = sucetRiadka(0);
			int r2 = sucetRiadka(1);
			int r3 = sucetRiadka(2);

			int goodSum;
			if (r1 == r2) {
				goodSum = r1;
			} else if (r2 == r3) {
				goodSum = r2;
			} else {
				goodSum = r1;
			}
			int badR = 0;
			int badS = 0;
			int badSum = 0;
			for (int i = 0; i < pocet; i++) {
				int s = sucetRiadka(i);
				if (s != goodSum) {
					badR = i + 1;
					badSum = s;
				}
			}

			for (int i = 0; i < pocet; i++) {
				int s = sucetStlpca(i);
				if (s != goodSum) {
					badS = i + 1;
					badSum = s;
				}
			}
			int rozdiel = goodSum - badSum;
			char s = (char) (nums[badR - 1][badS - 1] + rozdiel);
			System.out.println(badR + " " + badS + " " + s);
			line = br.readLine();
		}
	};

	private static int sucetRiadka(int r) {
		int suc = 0;
		for (int i = 0; i < pocet; i++) {
			suc += nums[r][i];
		}
		return suc;
	}

	private static int sucetStlpca(int s) {
		int suc = 0;
		for (int i = 0; i < pocet; i++) {
			suc += nums[i][s];
		}
		return suc;
	}
}
