n, m = map(int, input().split()) parent = list(range(n + 1)) # 1-based indexing size = [1] * (n + 1) def find(u): while parent[u] != u: parent[u] = parent[parent[u]] # Path compression u = parent[u] return u for _ in range(m): a, b = map(int, input().split()) root_a = find(a) root_b = find(b) if root_a == root_b: continue # Determine the winner and loser based on size and boss rank if size[root_a] > size[root_b]: winner, loser = root_a, root_b elif size[root_a] < size[root_b]: winner, loser = root_b, root_a else: # Same size, compare root values (smaller wins) if root_a < root_b: winner, loser = root_a, root_b else: winner, loser = root_b, root_a # Merge the loser into the winner's group parent[loser] = winner size[winner] += size[loser] # Output the boss for each monkey output = [] for i in range(1, n + 1): output.append(str(find(i))) print('\n'.join(output))