Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- n, m = map(int, input().split())
- edges = []
- while m:
- edges.append(list(map(int, input().split())))
- m -= 1
- g = dict()
- for v in range(1, n + 1):
- g[v] = []
- for a, b in edges:
- g[a].append(b)
- g[b].append(a)
- count = 0
- visited = set()
- res = []
- for v in g:
- if v not in visited:
- comp = []
- count += 1
- st = [v]
- visited.add(v)
- while st:
- cur = st.pop()
- comp.append(str(cur))
- for nb in g[cur]:
- if nb not in visited:
- st.append(nb)
- visited.add(nb)
- res.append(comp)
- print(count)
- for comp in res:
- print(len(comp))
- print(' '.join(comp))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement