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 = [int(i) for i in input().split(' ')]
    
links = [[] for _ in range(N + 1)]

for _ in range(M):
    a, b = [int(i) for i in input().split(' ')]
    links[a].append(b)
    links[b].append(a)

q = deque([1])

results = [-1 for _ in range(N + 1)]

while q:
    i = q.popleft()
    for j in links[i]:
        if results[j] == -1:
            results[j] = i
            q.append(j)

print('YES')
print('\n'.join([str(i) for i in results[2:]]))
from collections import deque

N, M = [int(i) for i in input().split(' ')]
    
links = [[] for _ in range(N + 1)]

for _ in range(M):
    a, b = [int(i) for i in input().split(' ')]
    links[a].append(b)
    links[b].append(a)

q = deque([1])

results = [-1 for _ in range(N + 1)]

while q:
    i = q.popleft()
    for j in links[i]:
        if results[j] == -1:
            results[j] = i
            q.append(j)

print('Yes')
print('\n'.join(str(i) for i in results[2:]))