#include<bits/stdc++.h> usingnamespace std; template <classT> inlinevoidread(T &x){ x = 0; int c = getchar(), f = 1; for (; !isdigit(c); c = getchar()) if (c == 45) f = -1; for (; isdigit(c); c = getchar()) (x *= 10) += f*(c-'0'); } int n, ans[2048]; bool mrk[2048]; boolDFS(int stp, int u){ if (stp >= (1<<n)) returntrue; int v = (u<<1)&((1<<n)-1); if (!mrk[v]) { mrk[v] = true; if (DFS(stp+1, v)) return ans[stp] = 0, true; mrk[v] = false; } v = (u<<1|1)&((1<<n)-1); if (!mrk[v]) { mrk[v] = true; if (DFS(stp+1, v)) return ans[stp] = 1, true; mrk[v] = false; } returnfalse; } intmain(){ read(n), DFS(0, 0), printf("%d ", 1<<n); for (int i = 1; i < n; i++) putchar('0'); for (int i = 0; i <= (1<<n)-n; i++) printf("%d", ans[i]); returnputs(""), 0; }