#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <iomanip>
#include <cstring>
using namespace std;
bool matri[600][600];
void recur(int x,int y,int v);
int main()
{
//freopen("text.in", "r", stdin);
int n;
cin >> n;
int q=1;
for(int i=1;i<=n;i++) q*=2;
recur(1,1,q/2);
for(int i=1;i<=q/2;i++)
{
for(int k=1;k<=q/2;k++)
{
cout << "0 ";
}
for(int k=1;k<=q/2;k++)
{
cout << matri[i][k] << ' ';
}
cout << endl;
}
for(int i=1;i<=q/2;i++)
{
for(int k=1;k<=q/2;k++)
{
cout << matri[i][k] << ' ';
}
for(int k=1;k<=q/2;k++)
{
cout << matri[i][k] << ' ';
}
cout << endl;
}
return 0;
}
void recur(int x,int y,int v)
{
if(v==2)
{
matri[x][y+1]=true;
matri[x+1][y+1]=true;
matri[x+1][y]=true;
return;
}
recur(x,y+(v/2),v/2);
recur(x+(v/2),y+(v/2),v/2);
recur(x+(v/2),y,v/2);
}