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.
# D
from collections import deque

N,M=map(int,input().split())
AL=[[] for _ in range(N)]
for _ in range(M):
    A,B=map(int,input().split())
    AL[A-1].append(B-1)
    AL[B-1].append(A-1)
Q=deque([[0,-1]]) 
ANS=[-1 for _ in range(N)] 
ANS[0]=1
TF=[0 for _ in range(N)]
while Q:
    print(Q)
    i,c=Q.popleft()
    if TF[i]:
        continue
    TF[i]=1
    ANS[i]=c
    for j in AL[i]:
        if not TF[j]:
            Q.append([j,i])

print('Yes')
for i in range(1,N):
    print(ANS[i])
import sys
input = sys.stdin.readline

from collections import deque

N,M=map(int,input().split())
AL=[[] for _ in range(N)]
for _ in range(M):
    A,B=map(int,input().split())
    AL[A-1].append(B-1)
    AL[B-1].append(A-1)
Q=deque([[0,-1]]) 
ANS=[-1 for _ in range(N)] 
ANS[0]=1
TF=[0 for _ in range(N)]
while Q:
    i,c=Q.popleft()
    if TF[i]:
        continue
    TF[i]=1
    ANS[i]=c
    for j in AL[i]:
        if not TF[j]:
            Q.append([j,i])

print('Yes')
for i in range(1,N):
    print(ANS[i]+1)
    