#include<stdio.h>
#include<iostream>

using namespace std;
int vert[1000][1000];
int hor[1000][1000];
int a[1000][1000];
int j,k,sol;
bool check[500001];
int main()
{
int n;
scanf("%d",&n);
if(n>1000)return 0;
for(j=1;j<=n;j++)
for(k=1;k<=n;k++)
scanf("%d",&a[j][k]);

for(j=1;j<=n;j++)
for(k=1;k<=n;k++)
{   if(check[a[j][k]]==0){
    hor[j][k]=1;vert[j][k]=1;
    check[a[j][k]]=1;
        }
    else{if(a[j][k-1]==a[j][k]){hor[j][k]=1;vert[j][k]=0;}
        else {hor[j][k]=0;vert[j][k]=1;}
    }
}

for(int i=0;i<=n;i++)
{hor[i][n]=0;
vert[n][i]=0;
}

for(k=2;k<=n;k++)
for(j=n-1;j>1;j--)
if(vert[j][k]==1)vert[j][k]=vert[j+1][k]+1;

for(j=2;j<=n;j++)
for(k=n-1;k>=2;k--)
if(hor[j][k]==1)hor[j][k]=hor[j][k+1]+1;
/*
for(j=1;j<=n;j++)
{for(k=1;k<=n;k++)
cout<<hor[j][k];
cout<<endl;
}
cout<<endl<<endl;
for(j=1;j<=n;j++)
{for(k=1;k<=n;k++)
cout<<vert[j][k];
cout<<endl;
}*/
int mini,i,solx,soly;

for(j=2;j<n;j++)
for(k=2;k<n;k++)
{int newn=min(n,k+vert[j][k]);

if((newn-k)%2==1)newn--;

 for(i=newn;i>k;i-=2)
 {
     mini=min(vert[j][k],vert[j][i]);
     if(i-k>mini)continue;
     else mini=i-k;
     if(hor[j][k]>=mini && hor[j+mini][k]>=mini)if(mini>sol){sol=mini;solx=j;soly=k;}
 }
}
printf("%d %d %d\n",sol,solx,soly);


return 0;
}