from collections import deque

n = int(input())
m = int(input())

g = [[] for _ in range(n + 1)]
for _ in range(m):
  u, v = map(int, input().split())
  g[u].append(v)
  g[v].append(u)

vis = [False] * (n + 1)
groups = []

for i in range(1, n + 1):
  if not vis[i]:
    group = []
    q = deque([i])
    vis[i] = True

    while q:
      cur = q.popleft()
      group.append(cur)
      for next in g[cur]:
        if not vis[next]:
          vis[next] = True
          q.append(next)

    groups.append(group)

r = []
for group in groups:
  a = 1001
  b = group[0]

  for s in group:
    d = [-1] * (n + 1)
    q = deque([s])
    d[s] = 0

    while q:
      cur = q.popleft()
      for next in g[cur]:
        if d[next] == -1:
          d[next] = d[cur] + 1
          q.append(next)

    max_d = 0
    for j in group:
      if d[j] > max_d:
        max_d = d[j]

    if max_d < a:
      a = max_d
      b = s

  r.append(b)

r.sort()
print(len(r))
for x in r:
  print(x)

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: