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

void gray(int n, vector <string> &sol){
    if(n == 0){
        sol.emplace_back("");
        return;
    }
    gray(n - 1, sol);
    vector <string> csol(sol);
     for(auto &i : sol){
        i.append("0");
    }
    for(auto &i : csol){
        i.append("1");
    }
    reverse(csol.begin(), csol.end());
    for(auto &i : csol){
        sol.push_back(i);
    }
}

int main()
{
    int n;
    cin >> n;
    vector <string> sol;
    gray(n, sol);
    for(auto &i: sol){
        cout << i << '\n';
    }
    return 0;
}