#include #include using namespace std; struct g_t { int id; int boss; int number; }; int get_boss(vector&g, int i) { if(g[i].boss==i) return i; return g[i].boss=get_boss(g, g[i].boss); } int main(void) { int n, m; while(scanf("%d%d", &n, &m)==2) { vector g(n+1); for(int i=1;i<=n;i++) { g[i].id=i; g[i].boss=i; g[i].number=1; } for(int i=0;ig[boss_b].id) a_win=false; } if(a_win) { g[boss_a].number+=g[boss_b].number; g[boss_b].boss=boss_a; g[boss_b].number=0; } else { g[boss_b].number+=g[boss_a].number; g[boss_a].boss=boss_b; g[boss_a].number=0; } } for(int i=1;i<=n;i++) { printf("%d\n", get_boss(g, i)); } /* for(int i=1;i<=n;i++) { printf("id=%d boss=%d num=%d\n", g[i].id, g[i].boss, g[i].number); } */ } return 0; }