import java.util.Scanner; public class prog { private static int[] X_POS = new int[]{-1, 1, 0, 0}; private static int[] Y_POS = new int[]{0, 0, -1, 1}; private static int currentFill = 1; public static void main(String[] args) throws java.lang.Exception { Scanner scanner = new Scanner(System.in); Integer type = Integer.parseInt(scanner.nextLine()); String[] data = scanner.nextLine().split(" "); Integer m = Integer.parseInt(data[0]); Integer n = Integer.parseInt(data[1]); int[][] field = new int[m+2][n+2]; int[][] fill = new int[m+2][n+2]; for (int i = 0; i < m; i++) { String cells = scanner.nextLine(); for (int j = 1; j <= n; j++) { field[i+1][j] = cells.charAt(j-1); } } int max = 0; int xMax = 0; int yMax = 0; int cMax = 0; for (int i = 1; i <= m; i++) { for (int j = 1; j <= n; j++) { int size = calcSize(fill, field, i, j, field[i][j]); if(size > max){ max = size; xMax = i; yMax = j; cMax = field[i][j]; } if(type==2){ for (int k = 0; k < 4; k++) { int x = i + X_POS[k]; int y = j + Y_POS[k]; if(field[x][y] != 0 && field[i][j] != field[x][y]){ size = calcSize(fill, field, i, j, field[x][y]); currentFill++; if(size > max){ max = size; xMax = i; yMax = j; cMax = field[x][y]; } } } } } } if(type == 1){ System.out.println(max); } else { System.out.println(xMax+" "+yMax); System.out.println((char)cMax); } scanner.close(); } private static int calcSize(int[][] fill, int[][] field, int x, int y, int c){ int res = 1; fill[x][y] = currentFill; for (int i = 0; i < 4; i++) { int x1 = x + X_POS[i]; int y1 = y + Y_POS[i]; if(c == field[x1][y1] && field[x1][y1] != 0 && fill[x1][y1] < currentFill){ res += calcSize(fill, field, x1, y1, c); } } return res; } }