#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; tuple t[10010]; int main() { for (int i = 0; i <= 250; i++) { for (int j = 0; j <= 250; j++) { for (int k = 0; k <= 250; k++) { if (i + j + k <= 250) { if (i * j + i * k + max(0, k * (k - 1) / 2) <= 10000) { t[i * j + i * k + max(0, k * (k - 1) / 2)] = make_tuple(i, j, k); } } } } } int k; cin >> k; cout << get<0>(t[k]) + get<1>(t[k]) + get<2>(t[k]) << endl; for (int i = 0; i < get<0>(t[k]); i++) { cout << 2 << " "; } for (int i = 0; i < get<1>(t[k]); i++) { cout << 3 << " "; } for (int i = 0; i < get<2>(t[k]); i++) { cout << 1 << " "; } cout << endl; }