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.

print('Yes')


INF=9999999
N,M=map(int,input().split())

tolist=[[] for _ in range(N)]
for _ in range(M):
    a,b=map(int,input().split())
    tolist[a-1].append(b-1)
    tolist[b-1].append(a-1)

pathlist=[0]
roomsign=[INF]*N
roomsign[0]=1

while pathlist:
    nth=pathlist.pop(0)
    for i in tolist[nth]:
        if roomsign[i]==INF:
            roomsign[i]=nth+1
            pathlist.append(i)

print("Yes")
print(*roomsign[1:N],sep="\n")