program acm21183;
const maxn=100;
type node=record
u,v,next:longint;
end;
var
q:array[1..10000] of longint;
num,i,j,k,n,e,u,v,x:longint;
graph:array[1..maxn,1..maxn] of longint;
vis:array[1..maxn] of boolean;
procedure bfs;
var
i,f,r:longint;
begin
f:=0; r:=1;
q[1]:=1; vis[1]:=true;
while f<r do
begin
inc(f);
x:=q[f];
if k=0 then begin write(x); k:=k+1 end
else write(' ',x);
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;
vis[i]:=true;
inc(r);
q[r]:=i;
end;
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;
bfs;
end.
/**************************************************************
Problem: 2053
User: admin
Language: Pascal
Result: Wrong Answer
****************************************************************/