25 lines
No EOL
625 B
Python
25 lines
No EOL
625 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))
|
|
for comp in ans:
|
|
print(len(comp))
|
|
print(*(comp)) |