def bfs(start):
visited[start] = True
queue = [start]
path = [start+1]
while queue:
v = queue.pop(0)
for i in sorted(a[v]):
if not visited[i]:
queue.append(i)
path.append(i+1)
visited[i] = True
return path
n, m, s =map(int,input().split())
a = [[] for _ in range(n)]
visited = [False] * n
for i in range(m):
q, w = map(int, input().split())
a[q-1].append(w-1)
a[w-1].append(q-1)
p = bfs(s-1)
if False not in visited: print(*p)
else: print('НЕТ')