#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; }