#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define all(x) x.begin(), x.end()
typedef long long ll;
#define inf 1e18
#define vint vector<int>h
#define vll vector<ll>
#define no cout << "NO" << endl;
void solve() {
ll n , m ; cin >> n >> m ;
vector < bool > vis(n+1, false) ;
vector < set <ll > > adj(n+1) ;
vector < ll > dis(n+1) , pred(n+1, -1);
for (int i = 0 ; i < m ; i ++ ) {
ll a , b ; cin >> a >> b ;
adj[a].insert(b) ;
adj[b].insert(a);
}
queue < ll > q;
q.push(1 );
vis[1] = 1 ;
dis[1] = 0 ;
pred[1] = -1 ;
while (!q.empty()) {
ll last = q.front() ;
q.pop() ;
set < ll > st = adj[last];
for (auto e : st) {
if (vis[e]) continue ;
vis[e] = 1 ;
q.push(e) ;dis[e] = dis[last] + 1 ;
pred[e] = last ;
}
}
ll ans = 0 ;
string s = to_string(n) ;
ll last = n ;
ans++;
while (pred[last] != -1 ) {
last = pred[last ];
ans++ ;
s=' '+to_string(last)+s ;
}
reverse(s.begin() , s.end()) ;
cout << ans << endl << s<< endl;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
int t = 1 ;
// cin >> t;
while (t--) {
solve();
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGFsbCh4KSB4LmJlZ2luKCksIHguZW5kKCkKdHlwZWRlZiBsb25nIGxvbmcgbGw7CgojZGVmaW5lIGluZiAxZTE4CiNkZWZpbmUgdmludCB2ZWN0b3I8aW50PmgKI2RlZmluZSB2bGwgdmVjdG9yPGxsPgojZGVmaW5lIG5vIGNvdXQgPDwgIk5PIiA8PCBlbmRsOwoKCnZvaWQgc29sdmUoKSB7CiAgICBsbCBuICwgbSA7IGNpbiA+PiBuID4+IG0gOwogICAgdmVjdG9yIDwgYm9vbCA+IHZpcyhuKzEsIGZhbHNlKSA7CiAgICB2ZWN0b3IgPCBzZXQgPGxsICA+ID4gYWRqKG4rMSkgOwogICAgdmVjdG9yIDwgbGwgPiBkaXMobisxKSAgICwgcHJlZChuKzEsIC0xKTsKICAgIGZvciAoaW50IGkgPSAwIDsgaSAgPCBtIDsgaSArKyApIHsKICAgICAgICBsbCBhICwgYiA7IGNpbiA+PiBhID4+IGIgOwogICAgICAgIGFkalthXS5pbnNlcnQoYikgOwogICAgICAgIGFkaltiXS5pbnNlcnQoYSk7CiAgICB9CiAgICBxdWV1ZSA8IGxsID4gcTsKICAgIHEucHVzaCgxICk7CiAgICB2aXNbMV0gPSAxIDsKICAgIGRpc1sxXSA9IDAgOwogICAgcHJlZFsxXSA9IC0xIDsKICAgIHdoaWxlICghcS5lbXB0eSgpKSB7CiAgICAgICAgbGwgbGFzdCA9IHEuZnJvbnQoKSA7CiAgICAgICAgcS5wb3AoKSA7CiAgICAgICAgc2V0IDwgbGwgPiBzdCA9IGFkaltsYXN0XTsKICAgICAgICBmb3IgKGF1dG8gZSA6IHN0KSB7CiAgICAgICAgICAgIGlmICh2aXNbZV0pIGNvbnRpbnVlICA7CiAgICAgICAgICAgIHZpc1tlXSA9IDEgOwogICAgICAgICAgICBxLnB1c2goZSkgO2Rpc1tlXSA9IGRpc1tsYXN0XSArIDEgOwogICAgICAgICAgICBwcmVkW2VdID0gbGFzdCA7CiAgICAgICAgfQogICAgfQogICAgbGwgYW5zID0gMCA7CiAgICBzdHJpbmcgcyA9IHRvX3N0cmluZyhuKSA7CiAgICBsbCBsYXN0ID0gIG4gIDsKICAgIGFucysrOwogICAgd2hpbGUgKHByZWRbbGFzdF0gIT0gLTEgKSB7CiAgICAgICAgbGFzdCAgPSAgcHJlZFtsYXN0IF07CiAgICAgICAgYW5zKysgOwogICAgICAgIHM9JyAnK3RvX3N0cmluZyhsYXN0KStzIDsKICAgIH0KICAgIHJldmVyc2Uocy5iZWdpbigpICwgcy5lbmQoKSkgOwogICAgY291dCA8PCBhbnMgPDwgZW5kbCA8PCBzPDwgZW5kbDsKCn0KCgoKCgoKaW50IG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwoKI2lmbmRlZiBPTkxJTkVfSlVER0UKICAgIGZyZW9wZW4oImlucHV0LnR4dCIsICJyIiwgc3RkaW4pOwogICAgZnJlb3Blbigib3V0cHV0LnR4dCIsICJ3Iiwgc3Rkb3V0KTsKI2VuZGlmCgoKICAgIGludCB0ID0gMSA7CiAgICAvLyBjaW4gPj4gdDsKICAgIHdoaWxlICh0LS0pIHsKICAgICAgICBzb2x2ZSgpOwogICAgfQoKfQ==