#include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long int llint; typedef vector vint; typedef vector vllint; typedef vector> vpint; typedef vector> vpllint; #define rep(i,n) for(int i=0;i Parent; //作るときはParentの値を全て-1にする //こうすると全てバラバラになる UnionFind(int N) { Parent = vector(N, -1); } //Aがどのグループに属しているか調べる int root(int A) { if (Parent[A] < 0) return A; return Parent[A] = root(Parent[A]); } //自分のいるグループの頂点数を調べる int size(int A) { return -Parent[root(A)];//親をとってきたい } //AとBをくっ付ける bool connect(int A, int B) { //AとBを直接つなぐのではなく、root(A)にroot(B)をくっつける A = root(A); B = root(B); if (A == B) { //すでにくっついてるからくっ付けない return false; } //大きい方(A)に小さいほう(B)をくっ付けたい //大小が逆だったらひっくり返しちゃう。 if (size(A) < size(B)) swap(A, B); //Aのサイズを更新する Parent[A] += Parent[B]; //Bの親をAに変更する Parent[B] = A; return true; } }; bool check(int a, int b) { return a > b; } int main() { int n; cin >> n; rep(i, n) { if (i == 0) { cout << 1; } else { cout << 3; } if (i != n - 1) { cout << " "; } } cout << endl; return 0; }