#include<bits/stdc++.h>
using namespace std;
int n;
bool f[1030][1030];
void dfs(int a,int b,int c,int d){
int x=(c-a+1)/2;
for(int i=a;i<=x;i++){
for(int j=a;j<=x;j++){
f[i][j]=1;
}
}
dfs((a+c-1)/2,(b+d-1)/2,c,d);
dfs((a+c-1)/2,b,c,(d+b-1)/2);
dfs(a,(b+d-1)/2,(a+c-1)/2,d);
}
int main(){
cin>>n;
n=1<<n;
dfs(1,1,n,n);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(f[i][j])cout<<"0 ";
else cout<<"1 ";
}
}
}