#include<stdio.h>
#include<math.h>
int arr[1040][1040] = { 0 };
void fun(int t);
int main()
{
int n;
scanf("%d", &n);
int t = (int)pow(2.0, (double)n);
for (int i = 0; i < t; i++)
{
for (int j = 0; j < t; j++)
{
arr[i][j] = 1;
}
}
fun(t,0,0);
for (int i = 0; i < t; i++)
{
for (int j = 0; j < t; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
void fun(int t,int h,int z)
{
if (t == 1)
return;
for (int i = h; i <h+ t / 2; i++)
for (int j = z; j <z+ t / 2; j++)
arr[i][j] = 0;
fun(t / 2, h + t / 2, z );
fun(t / 2, h, z + t / 2);
fun(t / 2, h + t / 2, z + t / 2);
}