#include <deque>
#include <iostream>
#include <vector>

int main( ) {
   int n, a;
   std::cin >> n >> a;

   std::vector<int> adyacencia[n];
   for (int i = 0; i < a; ++i) {
      int x, y;
      std::cin >> x >> y;
      adyacencia[x].push_back(y);
      adyacencia[y].push_back(x);
   }

   std::deque<int> cola = { 0 };
   bool procesado[n] = { };
   do {
      int actual = cola.front( );
      cola.pop_front( );
      if (!procesado[actual]) {
         procesado[actual] = true;
         std::cout << actual << " ";
         for (int vecino : adyacencia[actual]) {
            cola.push_back(vecino);
         }
      }
   } while (!cola.empty( ));
}
