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