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
****************************************************************/