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("No")
import queue
n,m=map(int, input().split())
q = queue.Queue()
edgelist = [[] for _ in range(n)]
for i in range(m):
    a,b=map(int, input().split())
    edgelist[a-1].append(b-1)
    edgelist[b-1].append(a-1)
res = [-1]*n
visited = [-1]*n
for v in edgelist[0]:
    q.put([v,0])
res[0]=1
while not q.empty():
    x = q.get()
    #print(x)
    if visited[x[0]]==1:
        continue
    else:
        visited[x[0]]=1
        res[x[0]]=x[1]+1
        for i in edgelist[x[0]]:
            if visited[i]==-1:
                q.put([i, x[0]])
print("Yes")
for i in range(1,n):
    print(res[i])

