#include <cstdio>

#define SUS 1
#define JOS -1
#define DREAPTA 2
#define STANGA -2

using namespace std ;

int mat [ 2014 ] [ 2014 ] , n ; 
int unde [ 2014 ] [ 2014 ] ;

inline int conditie ( int i , int j , int latura )
{
    int x = 0 ;
    for ( int k = j ; k <= j + latura - 1 and k < n and k > 1  ; ++ k )
        if ( unde [ i ] [ k ] != JOS ){
            x ++ ; 
        }
    if ( x != latura )
        return 0 ;
    x = 0 ;
    for ( int k = j ; k <= j + latura - 1 and k < n and k > 1 ; ++ k )
    {
        if ( unde [ i - latura + 1 ] [ k ] != SUS )
        {
            x ++ ; 
        }
    }
    if ( x != latura )
        return 0 ;
    x = 0 ;
    for ( int k = i - latura + 1 ; k <= i and k < n and k > 1 ; ++ k )
        if ( unde [ k ] [ j ] != STANGA )
        {
            x ++ ; 
        }
    if ( x != latura )
        return 0 ;
    x = 0 ;
    for ( int k = i - latura + 1 ; k <= i and k < n and k > 1 ; ++ k )
        if ( unde [ k ] [ j + latura - 1 ] != DREAPTA )
        {
            x ++ ; 
        }
    return latura ; 
}

int main ( )
{
    //freopen ( "window.in" , "r" , stdin ) ;
    //freopen ( "window.out" , "w" , stdout ) ;
    scanf ( "%d" , &n ) ;
    for ( int i = 1 ; i <= n ; ++ i )
        for ( int j = 1 ; j <= n ; ++ j )
            scanf ( "%d" , &mat [ i ] [ j ] ) ; 
    for ( int i = 1 ; i <= n ; ++ i )
        for ( int j = 1 ; j <= n ; ++ j )
        {
            if ( mat [ i ] [ j ] == mat [ i - 1 ] [ j ] ){
                 unde [ i ] [ j ] = SUS ;
            }
                else if ( mat [ i ] [ j ] == mat [ i ] [ j - 1 ] ){ 
                    unde [ i ] [ j ] = STANGA ;
                }
                    else if ( mat [ i ] [ j ] == mat [ i ] [ j + 1 ] ) {
                        unde [ i ] [ j ] = DREAPTA ; 
                    }
                        else {
                            unde [ i ] [ j ] = JOS ;
                        }
        }
    
    int best = 0 ; 
    int besti = 0 ; 
    int bestj = 0 ; 
    for ( int i = 2 ; i < n ; ++ i )
    {
        for ( int j = 2 ; j < n ; ++ j )
            {
                if ( unde [ i ] [ j ] == JOS )
                    continue ; 
                int last = j ; 
                for ( ; j < n and unde [ i ] [ j ] != JOS ; ++ j )
                {
                    if ( unde [ i ] [ j ] == DREAPTA )
                        continue ; 
                    int latura = ( j - last + 1 ) ; 
                    if ( conditie ( i , last , latura ) > best )
                    {
                        best = conditie ( i , last , latura ) ;
                        besti = i - latura + 1  ; 
                        bestj = last  ; 
                    }
                    
                }
                    
            }
    }
    printf ( "%d %d %d\n" , best , besti , bestj ) ; 
}