#include #include #include #include #include #include #include #include #include #include using namespace std; #define int long long #define rep(i,n) for(int i=0;i P; typedef pair PP; struct edge {int to, cost;}; int ar[31][31],c2[31]; signed main() { int n; cin >> n; rep(i, 31)c2[i] = i*(i - 1) / 2; rep(i, 31) { rep(j, 31) { ar[i][j] = (1 << i)*c2[j]; } } vectorV; rep(i, 31) { rep(j, 31) { if (ar[i][j] == n&&i + j <= 30) { rep(k, i)V.push_back(0); rep(k, j)V.push_back(1); goto F; } } } F:; cout << V.size() << endl; rep(i, V.size()) { if (i)cout << ' '; cout << V[i]; } cout << endl; }