#include using namespace std; int main(int argc, char *argv[]) { int N; cin >> N; // // ひとつを3とする // 残りはN - 1個 の和を、3で割ったあまりが1になるように構築すれば良い // cout << 3 << " "; // N - 1 以上で、3で割った余りが1となる値の最小値は? int n = INT_MAX; int m = (N - 1) % 3; switch (m) { case 0: n = N; break; case 1: n = N - 1; break; case 2: n = N + 1; break; } for (int i = 0; i < N - 2; i++) { cout << 1 << " "; n--; } cout << n << endl; return 0; }