/*
    Look at me!
    Look at me!
    The monster inside me has grown this big!

*/

#include<cstdio>
#include<map>
#include<set>
#define FIT(a,b) for(vector<int>::iterator a=b.begin();a!=b.end();a++)
#include<stack>
#define ROF(a,b,c) for(int a=b;a>=c;--a)
#include<vector>
#include<algorithm>
#define FOR(a,b,c) for(int a=b;a<=c;++a)
#define REP(a,b) for(int a=0;a<b;++a)
#include<cstring>
#include<bitset>
#include<cmath>
#include<iomanip>
#include<queue>
#define debug cerr<<"OK";
#define pii pair<int,int>
#define f cin
#define g cout
#define pii pair<int,int>
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define ll long long
#define ull unsigned long long
#define mod 1000000007
#define N 2010
#define NM 10000100
#define SQ 350
using namespace std;
/*ifstream f("a.in");
ofstream g("a.out");*/
/*int dx[]={0,0,0,1,-1};
int dy[]={0,1,-1,0,0};*/
int a[N][N],lins[N][N],linj[N][N],cols[N][N],cold[N][N],n,sx,sy,px,py;
int OK(int x)
{
    FOR(i,2,n-x)
    FOR(j,2,n-x)
    if(!(linj[i][j+x-1]-linj[i][j-1])&&!(cols[i+x-1][j+x-1]-cols[i-1][j+x-1])&&!(cold[i+x-1][j]-cold[i-1][j])&&!(lins[i+x-1][j+x-1]-lins[i+x-1][j-1]))
    {
        px=i;
        py=j;
        return 1;
    }
    return 0;
}
int main ()
{
   /*freopen("a.in","r",stdin);
    freopen("a.out","w",stdout);*/
    
    scanf("%d",&n);
    FOR(i,1,n)
    FOR(j,1,n)
    scanf("%d",&a[i][j]);
    
    FOR(i,1,n)
    FOR(j,1,n)
    {
        if(a[i][j]==a[i][j-1])
        {
            linj[i][j]=linj[i][j-2];
            lins[i][j]=lins[i][j-2];
            cols[i][j]=cols[i-1][j];
            cold[i][j]=cold[i-1][j]+1;
        }
        else
        if(a[i][j]==a[i-1][j])
        {
            cols[i][j]=cols[i-2][j];
            cold[i][j]=cold[i-2][j];
            lins[i][j]=lins[i][j-1];
            linj[i][j]=linj[i][j-1]+1;
        }
        else
        if(a[i][j]==a[i][j+1])
        {
            lins[i][j]=lins[i][j-1]+1;
            linj[i][j]=linj[i][j-1]+1;
            cols[i][j]=cols[i-1][j]+1;
            cold[i][j]=cold[i-1][j];
        }
        else
        if(a[i][j]==a[i+1][j])
        {
            lins[i][j]=lins[i][j-1]+1;
            linj[i][j]=linj[i][j-1];
            cols[i][j]=cols[i-1][j]+1;
            cold[i][j]=cold[i-1][j]+1;
        }
    }
    
    int st=2,dr=n-2;
    while(st<=dr)
    {
        int mij=(st+dr)>>1;
        if(OK(mij))
        {
            sx=px;
            sy=py;
            st=mij+1;
        }
        else
            dr=mij-1;
    }
    printf("%d %d %d",st-1,sx,sy);
    return 0;
}