#include <iostream>
#include <vector>
#include <stdlib.h>
#define MAXN 1000
using namespace std;

 int a,temp,maxS=0,maxX=0,maxY=0;
    bool cut=false;
    int bram=0;
    vector<bool> used;
    vector<vector<int> > m;

int main(){
    cin>>a;
    m.resize(a+1);
    used.resize((a+1)*(a+1));
    for(int i=0;i<a;i++){
        for(int j=0;j<a;j++){
            cin>>temp;
            m[i].push_back(temp);
        }
    }
    int sum=0;
    int fto = (a+1)*(a+1);
    for(int k = 2;k<a-2;k+=2){
            cut=false;
        for(int i=1;i<a-k;i++){
            for(int j=1;j<a-k;j++){

                sum=0;

                for(int n=i;n<i+k;n++){
                    for(int f=j;f<j+k;f++){
                        if(used[m[n][f]]){
                            sum-=m[n][f];
                            used[m[n][f]]=false;

                        }else{
                            sum+=m[n][f];
                            used[m[n][f]]=true;
                        }
                    }
                }
                for(int n=i;n<i+k;n++){
                    for(int f=j;f<j+k;f++){
                        used[m[n][f]]=false;
                    }
                }


                if(sum==0){
                    maxX=j;maxY=i;maxS=k;
                    cut=true;
                    break;
                }
            }
            if(cut)break;
        }
        if(sum!=0)bram++;
        if(bram>=2)break;
    }
    cout<<maxS<<" "<<maxY+1<<" "<<maxX+1;
    return 0;
}
