There is a cave.  The cave has N rooms and M passages. The rooms are numbered 1 to N, and the passages are numbered 1 to M. Passage i connects Room A_i and Room B_i bidirectionally. One can travel between any two rooms by traversing passages. Room 1 is a special room with an entrance from the outside.  It is dark in the cave, so we have decided to place a signpost in each room except Room 1. The signpost in each room will point to one of the rooms directly connected to that room with a passage.  Since it is dangerous in the cave, our objective is to satisfy the condition below for each room except Room 1.    * If you start in that room and repeatedly move to the room indicated by the signpost in the room you are in, you will reach Room 1 after traversing the minimum number of passages possible.  Determine whether there is a way to place signposts satisfying our objective, and print one such way if it exists.
from collections import deque

n, m = map(int, input().split())
a = [0] * m
b = [0] * m
for i in range(m):
    aa, bb = map(int, input().split())
    a[i], b[i] = aa, bb

path = [[] for _ in range(n+1)]
for i in range(m):
    aa, bb = a[i], b[i]
    path[bb].append(aa)
    path[aa].append(bb)
print(path)

ans = [0] * (n+1)
que = deque([[1, 1]])
while len(que) > 0:
    idx = que.popleft()
    if ans[idx[0]] == 0:
        ans[idx[0]] = idx[1]
    for i in path[idx[0]]:
        if ans[i] == 0:
            deque.append(que, [i, idx[0]])

print('Yes')
for i in range(2, n+1):
    print(ans[i])
import sys
from collections import deque

n, m = map(int, input().split())

path = [[] for _ in range(n+1)]

for i in range(m):
    a, b = map(int, input().split())
    path[a].append(b)
    path[b].append(a)

ans = [0] * (n+1)
alr = [0] * (n+1)
que = deque([1])
while len(que) > 0:
    idx = que.popleft()
    for i in path[idx]:
        if alr[i] == 0:
            que.append(i)
            ans[i] = idx
            alr[i] = 1
        else:
            pass

print('Yes')
for i in range(2, n+1):
    print(ans[i])
