#include<bits/stdc++.h>
using namespace std;
int a[1026][1026];
void take(int x,int y,int lx){
int li=lx/2;
for(int i=x;i<=x+li-1;i++)
for(int j=y;j<=y+li-1;j++){
a[i][j]=0;
}
if(li==1) return ;
take(x+li,y,li);
take(x,y+li,li);
take(x+li,y+li,li);
}
int main(){
int n,l;
cin>>n;
if(n==1){
cout<<'0';
return 0;
}
l=pow(2,n);
for(int i=1;i<=l;i++)
for(int j=1;j<=l;j++)
a[i][j]=1;
take(1,1,l);
for(int i=1;i<=l;i++){
for(int j=1;j<=l;j++)
cout<<a[i][j]<<' ';
cout<<endl;
}
return 0;
}