#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
void kick_out(int a,int b,int c,int d,vector<vector<int> > &arr)//把坐标是(a,b) (c,d) 之间的数字归零
{
for(int i=a;i<=(a+c)/2;i++)
for(int j=b;j<=(b+d)/2;j++)
arr[i][j]=0;
if((c-a)==1) return;
kick_out(a,(b+d)/2,(a+c)/2,d,arr);
kick_out((a+c)/2,(b+a)/2,c,d,arr);
kick_out((a+c)/2,b,c,(b+d)/2,arr);
}
int main()
{
int n,m=1;
cin >> n;
for (int i=0;i<n;i++)
{
m*=n;
}
vector<vector<int> > arr(n,vector<int>(n,1));
kick_out(0,0,m-1,m-1,arr);
return 0;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
cout << arr[i][j]<<" ";
}
cout << endl;
}
return 0;
}