Buggy python submission (verdict: Time Limit Exceeded):
n,m = map(int,input().split())

road = {k:[] for k in range(1,n+1)}
for _ in range(m):
  a,b = map(int,input().split())
  road[a].append(b)
  road[b].append(a)


next_visited = [1]
visited = [1]
temp_next = []

visit_num = {}

while True:
  temp_next = []
  for room in next_visited:
    ava_room = road[room]
    for r in ava_room:
      if r not in visited:
        visit_num[r] = room
        temp_next.append(r)
        visited.append(r)
        
  if temp_next == []:
    break
  next_visited = temp_next

if len(visit_num) != n-1:
  print('No')

else:
  print('Yes')
  for v in sorted(visit_num.items()):
    print(v[1])

  
 

Fixed submission:
n,m = map(int,input().split())

road = {k:[] for k in range(1,n+1)}
for _ in range(m):
  a,b = map(int,input().split())
  road[a].append(b)
  road[b].append(a)


next_visited = [1]
visited = {1:None}
temp_next = []

visit_num = {}
count = 0

while True:
  temp_next = []
  for room in next_visited:
    ava_room = road[room]
    for r in ava_room:
      try:
        visited[r]
      except:
        visit_num[r] = room
        temp_next.append(r)
        visited[r] = None
        
  if temp_next == []:
    break
  next_visited = temp_next

if len(visit_num) != n-1:
  print('No')

else:
  print('Yes')
  for v in sorted(visit_num.items()):
    print(v[1])

Buggy python submission (verdict: Runtime Error):
n,m = map(int,input().split())

road = {k:[] for k in range(1,n+1)}
for _ in range(m):
  a,b = map(int,input().split())
  road[a].append(b)
  road[b].append(a)

def check_num(road_set):
  num = 0
  for i in list(road_set.keys()):
    visited = [i]
    next_room = road_set[i]
    num += 1
    while True:
      
      if next_room in visited:
        return -1
      
      if next_room == 1:
        break
        
      visited.append(next_room)
      next_room = road_set[next_room]
      num += 1
  return num


def rec(i,road_set):
  if i == n+1:
    num = check_num(road_set)
    global min_num,min_road
    if num > 0 and (min_num == None or min_num>num):
      min_num = num
      min_road = road_set.copy()
    return
     
  if 1 in road[1]:
    road_set[i] = 1
    rec(i+1,road_set)
  else:
    for r in road[i]:
      road_set[i] = r
      rec(i+1,road_set)
    
min_num = None
min_road = None

rec(2,{})
if min_num == None:
  print('No')
else:
  print('Yes')
  for v in min_road.values():
    print(v)

Fixed submission:
n,m = map(int,input().split())

road = {k:[] for k in range(1,n+1)}
for _ in range(m):
  a,b = map(int,input().split())
  road[a].append(b)
  road[b].append(a)


next_visited = [1]
visited = {1:None}
temp_next = []

visit_num = {}
count = 0

while True:
  temp_next = []
  for room in next_visited:
    ava_room = road[room]
    for r in ava_room:
      try:
        visited[r]
      except:
        visit_num[r] = room
        temp_next.append(r)
        visited[r] = None
        
  if temp_next == []:
    break
  next_visited = temp_next

if len(visit_num) != n-1:
  print('No')

else:
  print('Yes')
  for v in sorted(visit_num.items()):
    print(v[1])

Buggy python submission (verdict: Runtime Error):
n,m = map(int,input().split())

road = {k:[] for k in range(1,n+1)}
for _ in range(m):
  a,b = map(int,input().split())
  road[a].append(b)
  road[b].append(a)
  


def check_num(road_set):
  num = 0
  for i in list(road_set.keys()):
    visited = [i]
    next_room = road_set[i]
    num += 1
    while True:
      
      if next_room in visited:
        return -1
      
      if next_room == 1:
        break
        
      visited.append(next_room)
      next_room = road_set[next_room]
      num += 1
  return num


def rec(i,road_set):
  if i == n+1:
    num = check_num(road_set)
    global min_num,min_road
    if num > 0 and (min_num == None or min_num>num):
      min_num = num
      min_road = road_set.copy()
    return
      
  for r in road[i]:
    road_set[i] = r
    rec(i+1,road_set)
    
min_num = None
min_road = None

rec(2,{})
if min_num == None:
  print('No')
else:
  print('Yes')
  for v in min_road.values():
    print(v)
  
    
    
    

Fixed submission:
n,m = map(int,input().split())

road = {k:[] for k in range(1,n+1)}
for _ in range(m):
  a,b = map(int,input().split())
  road[a].append(b)
  road[b].append(a)


next_visited = [1]
visited = {1:None}
temp_next = []

visit_num = {}
count = 0

while True:
  temp_next = []
  for room in next_visited:
    ava_room = road[room]
    for r in ava_room:
      try:
        visited[r]
      except:
        visit_num[r] = room
        temp_next.append(r)
        visited[r] = None
        
  if temp_next == []:
    break
  next_visited = temp_next

if len(visit_num) != n-1:
  print('No')

else:
  print('Yes')
  for v in sorted(visit_num.items()):
    print(v[1])