//ALEXANDRU MICLEA

#include <vector>
#include <algorithm>
#include <string>
#include <queue>
#include <map>
#include <set>
#include <unordered_map>
#include <time.h>
#include <iomanip>
#include <deque>
#include <math.h>
#include <cmath>
#include <assert.h>
#include <stack>
#include <bitset>
#include <random>
#include <chrono>

using namespace std;

#include <iostream>

vector <string> v, aux;

int main() {

	int n;
	cin >> n;

	v.push_back("0");
	v.push_back("1");

	for (int i = 2; i <= n; i++) {
		aux = v;
		reverse(aux.begin(), aux.end());
		for (auto& x : v) {
			x += "0";
		}
		for (auto& x : aux) {
			x += "1";
			v.push_back(x);
		}
	}

	for (auto& x : v) {
		cout << x << '\n';
	}

	return 0;
}