#include <iostream>
#include <vector>
#include <map>
#include <queue>
using namespace std;
struct node
{
int x;
vector<int> V;
node(int x1)
{
x=x1;
}
};
int main() {
int n,m;
cin>>n>>m;
map<int,map<int,int> > Map;
for(int i=0;i<m;i++)
{
int x,y;
cin>>x>>y;
Map[x-1][y-1]=1;
Map[y-1][x-1]=1;
}
int visited[n];
for(int i=0;i<n;i++)
{
visited[i]=0;
}
queue<node*> Q;
Q.push(new node(0));
vector<int> ans;
while(!Q.empty())
{
node* x = Q.front();
Q.pop();
visited[x->x]=1;
if(x->x == n-1)
{
ans=x->V;
ans.push_back(n-1);
break;
}
for(auto it=Map[x->x].begin();it!=Map[x->x].end();it++)
{
node* nod = new node(it->first);
for(int i=0;i<x->V.size();i++)
{
nod->V.push_back(x->V[i]);
}
nod->V.push_back(x->x);
Q.push(nod);
}
}
cout<<ans.size()<<endl;
for(int i=0;i<ans.size();i++)
{
cout<<ans[i]+1<<" ";
}
cout<<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8cXVldWU+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3Qgbm9kZQp7CglpbnQgeDsKCXZlY3RvcjxpbnQ+IFY7Cglub2RlKGludCB4MSkKCXsKCQl4PXgxOwoJfQp9OwoKCmludCBtYWluKCkgewoKCWludCBuLG07CgljaW4+Pm4+Pm07CgkKCW1hcDxpbnQsbWFwPGludCxpbnQ+ID4gTWFwOwoJCglmb3IoaW50IGk9MDtpPG07aSsrKQoJewoJCWludCB4LHk7CgkJY2luPj54Pj55OwoJCU1hcFt4LTFdW3ktMV09MTsKCQlNYXBbeS0xXVt4LTFdPTE7Cgl9CgkKCWludCB2aXNpdGVkW25dOwoJZm9yKGludCBpPTA7aTxuO2krKykKCXsKCQl2aXNpdGVkW2ldPTA7Cgl9CgkKCXF1ZXVlPG5vZGUqPiBROwoJUS5wdXNoKG5ldyBub2RlKDApKTsKCXZlY3RvcjxpbnQ+IGFuczsKCXdoaWxlKCFRLmVtcHR5KCkpCgl7CgkJbm9kZSogeCA9IFEuZnJvbnQoKTsKCQlRLnBvcCgpOwoJCXZpc2l0ZWRbeC0+eF09MTsKCQkKCQlpZih4LT54ID09IG4tMSkKCQl7CgkJCWFucz14LT5WOwoJCQlhbnMucHVzaF9iYWNrKG4tMSk7CgkJCWJyZWFrOwoJCX0KCQkKCQlmb3IoYXV0byBpdD1NYXBbeC0+eF0uYmVnaW4oKTtpdCE9TWFwW3gtPnhdLmVuZCgpO2l0KyspCgkJewoJCQlub2RlKiBub2QgPSBuZXcgbm9kZShpdC0+Zmlyc3QpOwoJCQlmb3IoaW50IGk9MDtpPHgtPlYuc2l6ZSgpO2krKykKCQkJewoJCQkJbm9kLT5WLnB1c2hfYmFjayh4LT5WW2ldKTsKCQkJfQoJCQlub2QtPlYucHVzaF9iYWNrKHgtPngpOwoJCQlRLnB1c2gobm9kKTsKCQl9Cgl9CgkKCWNvdXQ8PGFucy5zaXplKCk8PGVuZGw7Cglmb3IoaW50IGk9MDtpPGFucy5zaXplKCk7aSsrKQoJewoJCWNvdXQ8PGFuc1tpXSsxPDwiICI7Cgl9Cgljb3V0PDxlbmRsOwoKCXJldHVybiAwOwp9