#include<bits/stdc++.h>
#define ll long long
using namespace std;
bool a[10025][10025];
void dfs(int a1,int b,int c,int d)
{
int s=c-a1+1;
int half=s/2;
if(s==1) return;
a[a1][b]=0;
for(int i=1;i<=half;i++)
for(int j=1;j<=half;j++)
a[i][j]=0;
dfs(a1,b+half,c-half,d);
dfs(a1+half,b,c,d-half);
dfs(a1+half,b+half,c,d);
}
int main()
{
int p,n;
cin>>p;
n=pow(2,p);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++) a[i][j]=1;
}
dfs(1,1,n,n);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++) cout<<a[i][j]<<" ";
cout<<endl;
}
//数据范围:p<11
//WA 八个点
return 0;
}