#include <cstdio>
#include <algorithm>

using namespace std;

#define NMAX 2007

int X[NMAX][NMAX],right[NMAX][NMAX],down[NMAX][NMAX];
int i,j,N,MAX,l;
pair < int ,int > point;

int main()
{
//freopen ("window.in","r",stdin);
//freopen ("window.out","w",stdout);	

for (i=1,scanf("%d",&N);i<=N;++i)
for (j=1;j<=N;++j) 
scanf("%d",&X[i][j]);

for (i=2;i<=N-1;++i)
for (j=2;j<=N-1;++j)
right[i][j]=(X[i][j]==X[i][j+1])+right[i-1][j];

for (i=2;i<=N-1;++i)
for (j=2;j<=N-1;++j)
down[i][j]=(X[i][j]==X[i+1][j])+down[i][j-1];

for (i=2;i<=N-1;++i)
for (j=2;j<=N-1;++j)
{
	for (l=MAX+1;l+max(i,j)<=N;++l)
	{
		if (X[i][j+l-1]==X[i-1][j+l-1] || X[i+l-1][j]==X[i+l-1][j-1]) 
		{
			l=N;
			continue;
		}
		
		if (down[i+l-1][j+l-1]-down[i+l-1][j-1]!=0)
		continue;
		
		if (right[i+l-1][j+l-1]-right[i-1][j+l-1]!=0)
		continue;
		
		MAX=l;
		point=make_pair(i,j);
	}
}

printf("%d %d %d\n",MAX,point.first,point.second);

return 0;
}
