#include<fstream>
#include<iostream>

#define f cin
#define g cout

#define N 2010

using namespace std;

//ifstream f("window.in");
//ofstream g("window.out");

int maxi,n,i,j,k,sl,sc,l,c,a[N][N],cj[N][N],cs[N][N],ld[N][N],ls[N][N];

int main()
{
    f >> n;

    for(i = 1; i <= n; ++i)
            for(j = 1; j <= n; ++j)
                f >> a[i][j];

    for(i = 1; i <= n; ++i)
        cj[n][i] = cj[i][n] = cs[n][i] = cs[i][n] = ls[i][n] = ls[n][i] = ld[n][i] = ld[i][n] = n;

    for(i = n - 1; i >= 2; --i)
        for(j = n - 1; j >= 2; --j)
        {
            if(a[i][j] == a[i + 1][j])
                cj[i][j] = j;
            else
                cj[i][j] = cj[i][j + 1];

            if(a[i][j] == a[i - 1][j])
                cs[i][j] = j;
            else
                cs[i][j] = cs[i][j + 1];

            if(a[i][j] == a[i][j + 1])
                ld[i][j] = i;
            else
                ld[i][j] = ld[i + 1][j];

            if(a[i][j] == a[i][j - 1])
                ls[i][j] = i;
            else
                ls[i][j] = ls[i + 1][j];
        }

    for(i = 2; i < n; ++i)
        for(j = 2; j < n; ++j)
        {
            if(min(cs[i][j] - j, ls[i][j] - i) < maxi)
                continue;

            for(k = min(cs[i][j] - j, ls[i][j] - i); k > maxi; --k)
            {
                l = i + k - 1;
                c = j + k - 1;

                if(ld[i][c] <= c)
                    continue;
                if(cj[l][j] <= l)
                    continue;

                if(maxi < k)
                    maxi = k,
                    sl = i,
                    sc = j;
                break;
            }
        }

    g << maxi << ' ' << sl << ' ' << sc << '\n';

    return 0;
}
