#include using namespace std; typedef long long ll; #define REP(i,n) for(int i=0;i> N >> M; init(N); REP(i, M) { int a, b; cin >> a >> b; a--; b--; int winner, loser; //printf("a: %d b: %d\n", a, b); if(root(a) == root(b)) { // 同じチーム continue; } if(team[root(a)] == team[root(b)]) { // 同数なら優先度を見る winner = min(root(a), root(b)); loser = max(root(a), root(b)); } else { // 人数を見る if(team[root(a)] > team[root(b)]) { winner = root(a); loser = root(b); } else { winner = root(b); loser = root(a); } } unite(loser, winner); team[winner] += team[loser]; //printf("winner %d loser %d team[%d]: %d team[%d]: %d\n", // winner, loser, winner, team[winner], loser, team[loser]); } REP(i, N) { printf("%d\n", root(i) + 1); } return 0; }