import std.stdio; import std.algorithm; void main() { int n; readf("%d", &n); int[4] p = [1, 2, 4, 8]; int[4] k = [0, 0, 0, 0]; foreach_reverse(i, v; p) { while(n - v >= 0) { k[i]++; n -= v; } if (n == 0) break; } ulong cnt = k[0..$].filter!"a != 0".count; writeln(cnt); foreach (idx, v; k) { for(int i = 0; i < v; ++i) { writeln(p[idx]); } } }