#include<stdio.h>
#include<math.h>
int a[1025][1025];
void semian(int n,int x,int y)
{
int i,k;
for(i=y;i<y+n;i++)
{
for(k=x;k<x+n;k++)
{
a[i][k]=0;
}
}
if(n==1)return;
semian(n/2,x+n,y);
semian(n/2,x,y+n);
semian(n/2,x+n,y+n);
}
int main()
{
double n;
scanf("%lf",&n);
int i,k;
int s=pow(2,n);
for(i=0;i<s;i++)
{
for(k=0;k<s;k++)
{
a[i][k]=1;
}
}
for(i=0;i<s/2;i++)
{
for(k=0;k<s/2;k++)
{
a[i][k]=0;
}
}
semian(s/4,s/2,0);
semian(s/4,0,s/2);
semian(s/4,s/2,s/2);
for(i=0;i<s;i++)
{
for(k=0;k<s;k++)
{
printf("%d ",a[i][k]);
}
printf("\n");
}
return 0;
}