#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
const int maxn=3005;
bool a[maxn][maxn];
int mid[3];
int n,k;
void dg(int x,int y,int p,int q)//x,y为左上点横纵坐标 ,p,q为右下点横纵坐标;
{
if(x==p) return;
mid[2]=(x+p)/2;
mid[1]=(y+q)/2;
for(int j=y;j<=mid[1];j++)
for(int i=x;i<=mid[2];i++)
a[j][i]=0;
dg(mid[2],y,p,mid[1]);
dg(mid[2],mid[1],p,q);
dg(x,mid[1],mid[2],q);
}
void output(int x,int y)
{
for(int i=1;i<=x;i++)
for(int j=1;j<=y;j++)
printf("%d",a[i][j]);
}
int main( )
{
scanf("%d",&n);
k=pow(2,n);
memset(a,1,sizeof(a));
dg(1,1,k,k);
output(k,k);
return 0;
}