#include using namespace std; ifstream fin( "gray.in" ); ofstream fout( "gray.out" ); bool f[10000]; int N; void PRNT( int nr ) { for( int i = N - 1; i >= 0; --i ) cout << bool( nr & ( 1 << i ) ); cout << '\n'; } int main() { int nr = 0; bool nxt; cin >> N; f[0] = 1; PRNT( 0 ); int nr_p = 1; while( nr_p < ( 1 << N ) ) { nxt = false; for( int i = 0; i < N && !nxt; ++i ) if( f[ ( nr ^ ( 1 << i ) )] == 0 ) { nr ^= ( 1 << i ); f[nr] = 1; PRNT( nr ); nxt = true; ++nr_p; } } return 0; }