//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> v1; int main() { int n; cin >> n; v1.push_back("0"); v1.push_back("1"); for (int i = 2; i < (1<<n) ; i = i<<1) { for (int j = i-1; j >= 0; j--) { v1.push_back(v1[j]); } for (int j = 0; j < i; j++) { v1[j] = "0" + v1[j]; } for (int j = i; j < 2*i; j++) { v1[j] = "1" + v1[j]; } } for (int i = 0; i < v1.size(); i++) { cout << v1[i] << '\n'; } return 0; }