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.
#!/usr/bin/env python3
from collections import deque
q = deque([0])
Dequeue = lambda: q.popleft()
Enqueue = lambda x: q.append(x)
n, m = map(int, input().split())
l = [[] for _ in [0]*n]
for _ in range(m):
    a, b = map(int, input().split())
    a -= 1
    b -= 1
    l[a] += [b]
    l[b] += [a]
ans = [-1]*n
while q:
    v = Dequeue()
    for i in l[v]:
        if ans[i] < 1:
            ans[i] += v+1
            Enqueue(i)
if -1 in ans:
    print('No')
else:
    print('Yes')
    for j in ans[1:]:
        print(j)

#!/usr/bin/env python3
from collections import deque
q = deque([0])
Dequeue = lambda: q.popleft()
Enqueue = lambda x: q.append(x)
n, m = map(int, input().split())
l = [[] for _ in [0]*n]
for _ in range(m):
    a, b = map(int, input().split())
    a -= 1
    b -= 1
    l[a] += [b]
    l[b] += [a]
ans = [-1]*n
while q:
    v = Dequeue()
    for i in l[v]:
        if ans[i] < 1:
            ans[i] = v+1
            Enqueue(i)
if -1 in ans:
    print('No')
else:
    print('Yes')
    for j in ans[1:]:
        print(j)
