/**
* Created by Mr.Mody on 24-Jul-22.
*/
#include <bits/stdc++.h>
#include <cstring>
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
#define all(v) v.begin(),v.end()
#define mkp make_pair
#define el '\n'
#define V vector
#define vi V<int>
#define vvi V<vi>
#define vl V<ll>
#define vul V<ull>
#define vb V<bool>
#define mpii map<P<int,int>,int>
#define mii map<int,int>
#define PQ priority_queue
#define Q queue
#define pb push_back
#define vc vector<char>
#define vs vector<string>
#define P pair
#define pd pair<double,double>
#define pl pair<ll,ll>
#define pi pair<int,int>
#define tiii tuple<int,int,int>
#define vpi V<pair<int,int>>
#define vpl V<pair<ll,ll>>
#define F first
#define S second
#define OO (int)2e9
#define rep(i,n) for(int i=1;i<=n;++i)
#define rep0(i,n) for(int i=0;i<n;++i)
#define per(i,n) for(int i=n;i>-1;--i)
#define sz(v) (unsigned int)v.size()
#define printDS(s) {for(auto ss:s)cout<<ss<<' ';}
#define clrA(v, d) memset(v, d, sizeof(v)) // range {-1,0}
#define clrV(v, d) memset(&v[0], d, sz(v) * sizeof(v[0]))
#define Rev(v) reverse(all(v))
#define sortt(v) sort(all(v))
#define RevSortt(v) sort(all(v),greater<>())
#define ssort(v) stable_sort(all(v))
#define FastIo ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); // std:: be3:)
using namespace std;
/*صلوا على النبى*/
const ll MAX=1e5+105, MOD= 1e9+7,INF = 1e14;
const double EPS=1e-9;
ll t=1,N,M,K,u,v,c;
/*************************************************/
struct edge {
int from, to;
ll w;
edge(int from, int to, ll w): from(from), to(to), w(w) {}
bool operator < (const edge & e) const {
return w > e.w;
}
};
vi answer;
vl dist(MAX, INF);
vi pre(MAX, -1);
vi parent(MAX);
ll DijkstraAdjList(V<V<edge>> &adjList, int src, int dest)
{
dist[src] = 0;
PQ<edge> q;
q.push( edge(-1, src, 0) );
parent[src] = src;
while( !q.empty() ) {
edge e = q.top(); q.pop();
if(e.w > dist[e.to])
continue;
pre[e.to] = e.from;
// answer.pb(e.from);
rep0(j, sz(adjList[e.to])) {
edge ne = adjList[e.to][j];
if( dist[ne.to] > dist[ne.from] + ne.w ) {
ne.w = dist[ne.to] = dist[ne.from] + ne.w;
q.push( ne );
parent[ne.to] = e.to;
}
}
}
return dist[dest];
}
void printPath(vi &parent, int source, int dest)
{
stack<int> st;
int final = dest;
while(parent[dest] != source){
dest = parent[dest];
st.push(dest);
}
cout<<source<<" ";
while(!st.empty()){
cout<<st.top()<<" ";
st.pop();
}
cout<<final<<endl;
}
/*************************************************/
void solve() {
cin>>N>>M;
V<V<edge>>graph(N+5);
rep(i,M){
cin>>u>>v>>c;
if(u!=v){
graph[u].pb(edge(u,v,c));
graph[v].pb(edge(v,u,c));
}
}
ll ans = DijkstraAdjList(graph,1,N);
if(ans >= INF)
cout<<-1;
else{
printPath(parent,1,N);
}
}
int main() {
FastIo
//cin>>t;
while (t--)
{solve();}
return 0;
}
LyoqCiogQ3JlYXRlZCBieSBNci5Nb2R5IG9uIDI0LUp1bC0yMi4KKi8KI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDxjc3RyaW5nPgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgdWxsOwp0eXBlZGVmIGxvbmcgZG91YmxlIGxkOwojZGVmaW5lIGFsbCh2KSB2LmJlZ2luKCksdi5lbmQoKQojZGVmaW5lIG1rcCBtYWtlX3BhaXIKI2RlZmluZSBlbCAnXG4nCiNkZWZpbmUgViB2ZWN0b3IKI2RlZmluZSB2aSBWPGludD4KI2RlZmluZSB2dmkgVjx2aT4KI2RlZmluZSB2bCBWPGxsPgojZGVmaW5lIHZ1bCBWPHVsbD4KI2RlZmluZSB2YiBWPGJvb2w+CiNkZWZpbmUgbXBpaSBtYXA8UDxpbnQsaW50PixpbnQ+CiNkZWZpbmUgbWlpIG1hcDxpbnQsaW50PgojZGVmaW5lIFBRIHByaW9yaXR5X3F1ZXVlCiNkZWZpbmUgUSBxdWV1ZQojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIHZjIHZlY3RvcjxjaGFyPgojZGVmaW5lIHZzIHZlY3RvcjxzdHJpbmc+CiNkZWZpbmUgUCBwYWlyCiNkZWZpbmUgcGQgcGFpcjxkb3VibGUsZG91YmxlPgojZGVmaW5lIHBsIHBhaXI8bGwsbGw+CiNkZWZpbmUgcGkgcGFpcjxpbnQsaW50PgojZGVmaW5lIHRpaWkgdHVwbGU8aW50LGludCxpbnQ+CiNkZWZpbmUgdnBpIFY8cGFpcjxpbnQsaW50Pj4KI2RlZmluZSB2cGwgVjxwYWlyPGxsLGxsPj4KI2RlZmluZSBGIGZpcnN0CiNkZWZpbmUgUyBzZWNvbmQKI2RlZmluZSBPTyAoaW50KTJlOQojZGVmaW5lIHJlcChpLG4pIGZvcihpbnQgaT0xO2k8PW47KytpKQojZGVmaW5lIHJlcDAoaSxuKSBmb3IoaW50IGk9MDtpPG47KytpKQojZGVmaW5lIHBlcihpLG4pIGZvcihpbnQgaT1uO2k+LTE7LS1pKQojZGVmaW5lIHN6KHYpICh1bnNpZ25lZCBpbnQpdi5zaXplKCkKI2RlZmluZSBwcmludERTKHMpIHtmb3IoYXV0byBzczpzKWNvdXQ8PHNzPDwnICc7fQojZGVmaW5lIGNsckEodiwgZCkgbWVtc2V0KHYsIGQsIHNpemVvZih2KSkgICAgICAvLyByYW5nZSB7LTEsMH0KI2RlZmluZSBjbHJWKHYsIGQpIG1lbXNldCgmdlswXSwgZCwgc3oodikgKiBzaXplb2YodlswXSkpCiNkZWZpbmUgUmV2KHYpIHJldmVyc2UoYWxsKHYpKQojZGVmaW5lIHNvcnR0KHYpIHNvcnQoYWxsKHYpKQojZGVmaW5lIFJldlNvcnR0KHYpIHNvcnQoYWxsKHYpLGdyZWF0ZXI8PigpKQojZGVmaW5lIHNzb3J0KHYpIHN0YWJsZV9zb3J0KGFsbCh2KSkKI2RlZmluZSBGYXN0SW8gaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTtjaW4udGllKDApO2NvdXQudGllKDApOyAvLyBzdGQ6OiBiZTM6KQp1c2luZyBuYW1lc3BhY2Ugc3RkOwovKti12YTZiNinINi52YTZiSDYp9mE2YbYqNmJKi8KY29uc3QgbGwgIE1BWD0xZTUrMTA1LCBNT0Q9IDFlOSs3LElORiA9IDFlMTQ7CmNvbnN0IGRvdWJsZSBFUFM9MWUtOTsKbGwgdD0xLE4sTSxLLHUsdixjOwovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8Kc3RydWN0IGVkZ2UgewppbnQgZnJvbSwgdG87CmxsIHc7CmVkZ2UoaW50IGZyb20sIGludCB0bywgbGwgdyk6IGZyb20oZnJvbSksIHRvKHRvKSwgdyh3KSB7fQpib29sIG9wZXJhdG9yIDwgKGNvbnN0IGVkZ2UgJiBlKSBjb25zdCB7CnJldHVybiB3ID4gZS53Owp9Cn07CnZpIGFuc3dlcjsKdmwgZGlzdChNQVgsIElORik7CnZpIHByZShNQVgsIC0xKTsKdmkgcGFyZW50KE1BWCk7CmxsIERpamtzdHJhQWRqTGlzdChWPFY8ZWRnZT4+ICZhZGpMaXN0LCBpbnQgc3JjLCBpbnQgZGVzdCkKewpkaXN0W3NyY10gPSAwOwoKUFE8ZWRnZT4gcTsKcS5wdXNoKCBlZGdlKC0xLCBzcmMsIDApICk7CnBhcmVudFtzcmNdID0gc3JjOwp3aGlsZSggIXEuZW1wdHkoKSApIHsKZWRnZSBlID0gcS50b3AoKTsJcS5wb3AoKTsKaWYoZS53ID4gZGlzdFtlLnRvXSkKY29udGludWU7CQpwcmVbZS50b10gPSBlLmZyb207Ci8vIGFuc3dlci5wYihlLmZyb20pOwpyZXAwKGosIHN6KGFkakxpc3RbZS50b10pKSB7CmVkZ2UgbmUgPSBhZGpMaXN0W2UudG9dW2pdOwppZiggZGlzdFtuZS50b10gPiBkaXN0W25lLmZyb21dICsgbmUudyApIHsKbmUudyA9IGRpc3RbbmUudG9dID0gZGlzdFtuZS5mcm9tXSArIG5lLnc7CnEucHVzaCggbmUgKTsKcGFyZW50W25lLnRvXSA9IGUudG87Cn0KfQp9CnJldHVybiAgZGlzdFtkZXN0XTsKfQp2b2lkIHByaW50UGF0aCh2aSAmcGFyZW50LCBpbnQgc291cmNlLCBpbnQgZGVzdCkKewpzdGFjazxpbnQ+IHN0OwppbnQgZmluYWwgPSBkZXN0Owp3aGlsZShwYXJlbnRbZGVzdF0gIT0gc291cmNlKXsKZGVzdCA9IHBhcmVudFtkZXN0XTsKc3QucHVzaChkZXN0KTsKfQpjb3V0PDxzb3VyY2U8PCIgIjsKd2hpbGUoIXN0LmVtcHR5KCkpewpjb3V0PDxzdC50b3AoKTw8IiAiOwpzdC5wb3AoKTsKfQpjb3V0PDxmaW5hbDw8ZW5kbDsKfQovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8Kdm9pZCBzb2x2ZSgpIHsKY2luPj5OPj5NOwpWPFY8ZWRnZT4+Z3JhcGgoTis1KTsKcmVwKGksTSl7CmNpbj4+dT4+dj4+YzsKaWYodSE9dil7CmdyYXBoW3VdLnBiKGVkZ2UodSx2LGMpKTsKZ3JhcGhbdl0ucGIoZWRnZSh2LHUsYykpOwp9Cn0KbGwgYW5zID0gRGlqa3N0cmFBZGpMaXN0KGdyYXBoLDEsTik7CmlmKGFucyA+PSBJTkYpCmNvdXQ8PC0xOwplbHNlewpwcmludFBhdGgocGFyZW50LDEsTik7Cn0KfQppbnQgbWFpbigpIHsKRmFzdElvCi8vY2luPj50Owp3aGlsZSAodC0tKQp7c29sdmUoKTt9CnJldHVybiAwOwp9