#include <iostream>
#include<cstring>
#include<vector>
#include<algorithm>
using namespace std;

vector<string> gray (int n)
{
    if (n==0)
        return { ""};
    auto before=gray(n-1);
    auto half=before;
    reverse(half.begin(), half.end());
    vector<string> ans;
    for( auto elem: before){
        elem= "0" + elem;
        ans.push_back(elem);
    }
    for( auto elem: half){
        elem= "1" + elem;
        ans.push_back(elem);
    }
    return ans;
}
int main()
{ int N;
    cin>>N;
auto  ans = gray (N);
    for (auto elem : ans)
        cout<<elem<<'\n';
    return 0;
}