#include <stdio.h>    // P1
int T[1<<10][1<<10];
int n;

int eval(int a, int b ,int n)
{
    for(int i = a ; i < a+n ; i++ )
        for(int j = b ; j < b+n ; j++ )
            if( T[a][b] != T[i][j] ) return 2;
    return T[a][b];
}

void solve(int a, int b, int n)
{
    if( n == 1 ){
        if( T[a][b] ) printf("1");
        else printf("0");
    }
    else{
        int res = eval(a,b,n);
        if(res==1) printf("1");
        else if(res==0) printf("0");
        else{
            printf("X");
            solve(a,b,n/2);
            solve(a,b+n/2,n/2);
            solve(a+n/2,b,n/2);
            solve(a+n/2,b+n/2,n/2);
        }
    }
}

int main()
{
    freopen(".20.in","r",stdin);
    freopen(".20.out","w",stdout);
    scanf("%d", &n);
    for(int i = 0 ; i < n ; i++ )
        for(int j = 0 ; j < n ; j++ )
            scanf("%d", &T[i][j]);
    solve(0,0,n);
}
