#include<iostream>#include<vector>usingnamespace std;voidgray(int n,int b, vector<vector<int>>&arr){if(n ==0){return;}for(int i =0; i < b /2;++i){
arr[i][n -1]=0;
arr[b - i -1][n -1]=1;}gray(n -1, b /2, arr);for(int i = b /2; i < b;++i){for(int j =0; j < n -1;++j){
arr[i][j]= arr[b - i -1][j];}}}intmain(int argc,constchar* argv[]){int n;
cin>>n;int b =pow(2,n);
vector<vector<int>>arr(b, vector<int>(n));gray(n, b, arr);for(int i =0; i < b;++i){for(int j = n -1; j >=0;--j){
cout<<arr[i][j];if(j ==0){
cout<<endl;}}}return0;}