test/1B.py
2026-07-01 19:46:51 +03:00

24 lines
No EOL
636 B
Python

V, E = map(int, input().split())
adj = [[] for i in range(V + 1)]
for i in range(E):
u, v = map(int, input().split())
adj[u].append(v)
adj[v].append(u)
visited = [False] * (V + 1)
ans = []
for i in range(1, V + 1):
if not visited[i]:
comp = []
stack = [i]
visited[i] = True
while stack:
u = stack.pop()
comp.append(u)
for v in adj[u]:
if not visited[v]:
visited[v] = True
stack.append(v)
ans.append(comp)
print(len(ans) - 1)
for i in range(len(ans) - 1):
print(ans[i][0], ans[i+1][0])