#include <iostream>
#include <cstring>
#include <algorithm>
#include <string>
#include <cmath>
using namespace std;
bool isok[1030][1030];
void fn(int x,int y,int size){
if (size == 1) return ;
size /=2;
for(int i = x;i<x+size ; i++){
for(int j=y;j<=y+size;j++){
isok[i][j]=1;
}
}
fn(x,y+size ,size );
fn(x+size,y,size);
fn(x+size , y+size , size);
}
int main (){
int n,len;
cin >> n;
len =pow(2,n);
fn(len,1,1);
for(int i=1;i<=len;i++){
for (int j;j<=len;j++){
cout << (isok[i][j]==false)<<" ";
}
cout << endl;
}
return 0;
}