#include<bits/stdc++.h>
using namespace std;
int a[1030][1030];
void shemian(int start1,int start2,int end1,int end2){
if(start1-end1 == 1 && start2 - end2 == 1) return;
int u1 = start1+(start1-end1)/2;
int u2 = start2+(start2-end2)/2;
for(int i = start1;i <= u1;i++){
for(int j = start2;j <= u2;j++){
a[i][j] == 0;
}
}
shemian(start1,u2,u1,end1);
shemian(u1,u2,end1,end2);
shemian(u1,start2,u1,end2);
return;
}
int main(){
int n;
scanf("%d",&n);
int size = 1<<n;
for(int i = 1;i <= size;i++){
for(int j = 1;j <= size;j++){
a[i][j] = 1;
}
}
shemian(1,1,size,size);
for(int i = 1;i <= size;i++){
for(int j = 1;j <= size;j++){
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}