program acm21182;
const maxn=100;
type node=record
u,v,next:longint;
end;
var
num,i,j,k,n,e,u,v,t:longint;
graph:array[1..maxn,1..maxn] of longint;
vis:array[1..maxn] of boolean;
procedure dfs(x:longint);
var
i:longint;
begin
if k=0 then
begin
write(x); k:=k+1;
end
else write(' ',x);
vis[x]:=true;
for i:=1 to n do
if (not vis[i]) and (graph[x,i]>0) then
begin
graph[x,i]:=0;
graph[i,x]:=0;
dfs(i);
end;
end;
procedure init;
var i:longint;
begin
fillchar(graph,sizeof(graph),0);
readln(n,e);
for i:=1 to e do
begin
readln(u,v);
graph[u,v]:=1;
graph[v,u]:=1;
end;
end;
begin
fillchar(vis,sizeof(vis),0);
init;
k:=0;
dfs(1);
end.
/**************************************************************
Problem: 2052
User: admin
Language: Pascal
Result: Wrong Answer
****************************************************************/