#include <stdio.h>
#include <string.h>
#include <math.h>
char M[1024][1024];
void mark(int x, int y, int n)
{
int i,j;
if (n>1) {
for (i=x;i<x+n/2;i++)
for (j=y;j<y+n/2;j++)
M[i][j]=0;
mark(x,y+n/2,n/2);
mark(x+n/2,y,n/2);
mark(x+n/2,y+n/2,n/2);
}
}
int main()
{
int n,m,i,j;
scanf("%d",&n);
memset(M, 1, sizeof(M));
m=pow(2,n);
mark(0,0,m);
for (i=0;i<m;i++) {
for (j=0;j<m;j++)
printf("%d ",M[i][j]);
if (i<m-1)
printf("\n");
}
return 0;
}