#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define mp make_pair
typedef long long ll;
const ll INF = 1e18;
vector < pair<ll,ll> > adj[100005];
ll dist[100005];
ll path[100005];
ll vertex,edge;
void djikstra(){
priority_queue<pair<ll,ll> ,vector<pair<ll,ll> > ,greater<pair<ll,ll> > >pq;
for(ll i = 0;i < 100005; i++){
dist[i] = INF;
path[i] = -1;
}
pq.push(mp(1,0));
dist[1] = 0;
while(!pq.empty()){
ll now = pq.top().first;
pq.pop();
for(ll i = 0;i < adj[now].size();i++){
ll leaf = adj[now][i].first;
ll hrg = adj[now][i].second;
if(dist[leaf] > dist[now] + hrg){
dist[leaf] = dist[now] + hrg;
path[leaf] = now;
pq.push(mp(leaf,dist[leaf]));
}
}
}
if(path[vertex] == -1){
cout << -1 << endl;
} else {
//cout << 'a' << endl;
vector <ll> jalan;
ll temp = vertex;
while(temp != -1){
jalan.pb(temp);
temp = path[temp];
}
cout << 1 << ' ';
reverse(jalan.begin(),jalan.end());
for(int i = 1;i < jalan.size() ;i++){
cout << jalan[i];
if(i == jalan.size()-1)cout << endl;
else{
cout << ' ';
}
}
}
}
int main(){
cin >> vertex >> edge;
ll a,b,w;
for(int i = 0;i < edge; ++i){
cin >> a >> b >> w;
adj[a].pb(mp(b,w));
adj[b].pb(mp(a,w));
}
/*for(int i = 1;i <= vertex;i++){
for(int j = 0;j < adj[i].size();j++)
cout << i << "-> "<< adj[i][j].first << ' ' << adj[i][j].second << endl;
}*/
djikstra();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgbXAgbWFrZV9wYWlyCnR5cGVkZWYgbG9uZyBsb25nIGxsOwpjb25zdCBsbCBJTkYgPSAxZTE4Owp2ZWN0b3IgPCBwYWlyPGxsLGxsPiA+IGFkalsxMDAwMDVdOwpsbCBkaXN0WzEwMDAwNV07CmxsIHBhdGhbMTAwMDA1XTsKbGwgdmVydGV4LGVkZ2U7CnZvaWQgZGppa3N0cmEoKXsKCXByaW9yaXR5X3F1ZXVlPHBhaXI8bGwsbGw+ICx2ZWN0b3I8cGFpcjxsbCxsbD4gPiAsZ3JlYXRlcjxwYWlyPGxsLGxsPiA+ID5wcTsKCWZvcihsbCBpID0gMDtpIDwgMTAwMDA1OyBpKyspewoJCWRpc3RbaV0gPSBJTkY7CgkJcGF0aFtpXSA9IC0xOyAKCX0KCXBxLnB1c2gobXAoMSwwKSk7CglkaXN0WzFdID0gMDsKCXdoaWxlKCFwcS5lbXB0eSgpKXsKCQlsbCBub3cgPSBwcS50b3AoKS5maXJzdDsKCQlwcS5wb3AoKTsKCQlmb3IobGwgaSA9IDA7aSA8IGFkaltub3ddLnNpemUoKTtpKyspewoJCQlsbCBsZWFmID0gYWRqW25vd11baV0uZmlyc3Q7CgkJCWxsIGhyZyA9IGFkaltub3ddW2ldLnNlY29uZDsKCgkJCWlmKGRpc3RbbGVhZl0gPiBkaXN0W25vd10gKyBocmcpewoJCQkJZGlzdFtsZWFmXSA9IGRpc3Rbbm93XSArIGhyZzsKCQkJCXBhdGhbbGVhZl0gPSBub3c7CgkJCQlwcS5wdXNoKG1wKGxlYWYsZGlzdFtsZWFmXSkpOwoJCQl9CgkJfQoJfQoJaWYocGF0aFt2ZXJ0ZXhdID09IC0xKXsKCQljb3V0IDw8IC0xIDw8IGVuZGw7Cgl9IGVsc2UgewoJCS8vY291dCA8PCAnYScgPDwgZW5kbDsKCQl2ZWN0b3IgPGxsPiBqYWxhbjsKCQlsbCB0ZW1wID0gdmVydGV4OwoJCXdoaWxlKHRlbXAgIT0gLTEpewoJCQlqYWxhbi5wYih0ZW1wKTsKCQkJdGVtcCA9IHBhdGhbdGVtcF07CgkJfQoJCWNvdXQgPDwgMSA8PCAnICc7CgkJcmV2ZXJzZShqYWxhbi5iZWdpbigpLGphbGFuLmVuZCgpKTsKCQlmb3IoaW50IGkgPSAxO2kgPCBqYWxhbi5zaXplKCkgO2krKyl7CgkJCWNvdXQgPDwgamFsYW5baV07CgkJCWlmKGkgPT0gamFsYW4uc2l6ZSgpLTEpY291dCA8PCBlbmRsOwoJCQllbHNlewoJCQkJY291dCA8PCAnICc7CgkJCX0KCQl9Cgl9Cn0gCmludCBtYWluKCl7CgljaW4gPj4gdmVydGV4ID4+IGVkZ2U7CgoJbGwgYSxiLHc7Cglmb3IoaW50IGkgPSAwO2kgPCBlZGdlOyArK2kpewoJCWNpbiA+PiBhID4+IGIgPj4gdzsKCQlhZGpbYV0ucGIobXAoYix3KSk7CgkJYWRqW2JdLnBiKG1wKGEsdykpOwoJfQoKCS8qZm9yKGludCBpID0gMTtpIDw9IHZlcnRleDtpKyspewoJCWZvcihpbnQgaiA9IDA7aiA8IGFkaltpXS5zaXplKCk7aisrKQoJCQljb3V0IDw8IGkgPDwgIi0+ICI8PCBhZGpbaV1bal0uZmlyc3QgPDwgJyAnIDw8IGFkaltpXVtqXS5zZWNvbmQgPDwgZW5kbDsKCX0qLwoJZGppa3N0cmEoKTsKCglyZXR1cm4gMDsKfQ==