#include<iostream>
using namespace std;

    struct pos{
        //PP
        int right,up,left,down;
    };


    int grid[2048][2048];

    pos points[2048][2048];

    int N;

    bool open(int a,int b,int posoka){

        //0-right 1-up 2-left 3-down
        if((posoka==0&&a==N)||
           (posoka==1&&b==0)||
           (posoka==2&&a==0)||
           (posoka==3&&b==N)){
            return 0;
        }else{

            if(posoka==0){
                return(grid[a][b]!=grid[a][b-1]);
            }else if(posoka==1){
                return(grid[a-1][b-1]!=grid[a][b-1]);
            }else if(posoka==2){
                return(grid[a-1][b-1]!=grid[a-1][b]);
            }else if(posoka==3){
                return(grid[a][b]!=grid[a-1][b]);
            }
        }
    }


int main(){

    cin>>N;

    for(int j=0;j<N;j++){
        for(int i=0;i<N;i++){
            cin>>grid[i][j];
        }
    }

    for(int j=0;j<=N;j++){
        for(int i=0;i<=N;i++){
            points[i][j].up=open(i,j,1)*(points[i][j-1].up+1);
            points[i][j].left=open(i,j,2)*(points[i-1][j].left+1);
        }
    }

    for(int j=N;j>=0;j--){
        for(int i=N;i>=0;i--){
            points[i][j].down=open(i,j,3)*(points[i][j+1].down+1);
            points[i][j].right=open(i,j,0)*(points[i+1][j].right+1);
        }
    }

    for(int k=N-2;k>=2;k-=2){
        for(int q=0;q<=N-2-k;q++){
            for(int p=0;p<=N-2-k;p++){
                if(points[1+p][1+q].right>=k&&
                   points[1+p][1+q].down>=k&&
                   points[1+p+k][1+q+k].left>=k&&
                   points[1+p+k][1+q+k].up>=k){
                    cout<<k<<" "<<1+q+1<<" "<<1+p+1;
                    return 0;
                }
            }
        }
    }

    /*for(int j=0;j<N;j++){
        for(int i=0;i<N;i++){
            cout<<grid[i][j]<<" ";
        }
        cout<<endl;
    }

    for(int j=0;j<=N;j++){
        for(int i=0;i<=N;i++){
            cout<<"("<<points[i][j].up<<" "<<points[i][j].left<<" "<<points[i][j].down<<" "<<points[i][j].right<<") ";
        }
        cout<<endl;
    }*/

return 0;
}

