#include<cstdio>
#include<algorithm>

int m, v[2005][2005], hs[2005][2005], vs[2005][2005], b = 1, bx, by;
bool vt[2005][2005], hz[2005][2005];

void search(int x, int y){
	int s = b + 1, e = std::min(hs[x][y], vs[x][y]);
	while(s < e){
		int m = (s + e + 1) / 2;
		if(hs[x + m][y] >= m && vs[x][y + m] >= m)
			s = m;
		else
			e = m - 1;
	}
	
	if(hs[x + s][y] >= s && vs[x][y + s] >= s)
		b = s, bx = x, by = y;
}

int main(void){
#ifdef ASDASD
	freopen("3.in", "r", stdin);
#endif
	scanf("%d", &m);
	for(int i = 0 ; i < m ; i++)
		for(int j = 0 ; j < m ; j++) {
			scanf("%d", v[i] + j);
			hz[i][j] = i && j && v[i][j] != v[i-1][j];
			vt[i][j] = i && j && v[i][j] != v[i][j-1];
		}

	for(int i = m - 1 ; i ; i--)
		for(int j = m - 1 ; j ; j--){
			vs[i][j] = vt[i][j] ? vs[i+1][j] + 1 : 0;
			hs[i][j] = hz[i][j] ? hs[i][j+1] + 1 : 0; 
		}

	for(int i = 1 ; i < m - b + 1 ; i++)
		for(int j = 1 ; j < m - b + 1 ; j++)
			search(i, j);

	printf("%d %d %d", b, bx + 1, by + 1);
	return 0;
}
