#include<bits/stdc++.h>
using namespace std;
const long long MaxN=1e5+5;
long long n,m;
vector<pair<long long,long long>> arr[MaxN];
long long dis[MaxN];
void bfs(long long x, vector<pair<long long,long long>> arr[], bool visited[], long long dis[])
{
for(long long i=1; i<=n; i++)
{
visited[i]=false;
dis[i]=0;
}
queue<long long> qu;
qu.push(x);
visited[x]=true;
while(!qu.empty())
{
long long u=qu.front();
qu.pop();
for(auto fi:arr[u])
{
long long v=fi.first;
if(!visited[v])
{
visited[v]=true;
dis[v]=dis[u]+1;
qu.push(v);
}
}
}
}
void bfs(long long x, vector<pair<long long,long long>> arr[], bool visited[], vector<long long> &ans)
{
queue<long long> qu;
qu.push(x);
while(!qu.empty())
{
long long sz=qu.size();
long long mn=LLONG_MAX;
for(long long i=1; i<=sz; i++)
{
long long u=qu.front();
qu.pop();
if(u==n)
{
return;
}
for(auto fi:arr[u])
{
long long v=fi.first;
long long w=fi.second;
if(dis[v]==dis[u]-1)
{
mn=min(mn,w);
}
}
qu.push(u);
}
if(mn==LLONG_MAX)
{
return;
}
ans.push_back(mn);
for(long long i=1; i<=sz; i++)
{
long long u=qu.front();
qu.pop();
for(auto fi:arr[u])
{
long long v=fi.first;
long long w=fi.second;
if(dis[v]==dis[u]-1 && w==mn)
{
qu.push(v);
}
}
}
}
}
void input()
{
cin>>n>>m;
for(long long i=1; i<=m; i++)
{
long long u,v,w;
cin>>u>>v>>w;
arr[u].push_back({v,w});
arr[v].push_back({u,w});
}
}
void solve()
{
bool visited[MaxN];
vector<long long> ans;
bfs(n,arr,visited,dis);
bfs(1,arr,visited,ans);
cout<<dis[1]<<'\n';
for(long long x:ans)
{
cout<<x<<' ';
}
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
input();
solve();
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGxvbmcgbG9uZyBNYXhOPTFlNSs1OwoKbG9uZyBsb25nIG4sbTsKdmVjdG9yPHBhaXI8bG9uZyBsb25nLGxvbmcgbG9uZz4+IGFycltNYXhOXTsKbG9uZyBsb25nIGRpc1tNYXhOXTsKCnZvaWQgYmZzKGxvbmcgbG9uZyB4LCB2ZWN0b3I8cGFpcjxsb25nIGxvbmcsbG9uZyBsb25nPj4gYXJyW10sIGJvb2wgdmlzaXRlZFtdLCBsb25nIGxvbmcgZGlzW10pCnsKICAgIGZvcihsb25nIGxvbmcgaT0xOyBpPD1uOyBpKyspCiAgICB7CiAgICAgICAgdmlzaXRlZFtpXT1mYWxzZTsKICAgICAgICBkaXNbaV09MDsKICAgIH0KCiAgICBxdWV1ZTxsb25nIGxvbmc+IHF1OwoKICAgIHF1LnB1c2goeCk7CiAgICB2aXNpdGVkW3hdPXRydWU7CgogICAgd2hpbGUoIXF1LmVtcHR5KCkpCiAgICB7CiAgICAgICAgbG9uZyBsb25nIHU9cXUuZnJvbnQoKTsKICAgICAgICBxdS5wb3AoKTsKCiAgICAgICAgZm9yKGF1dG8gZmk6YXJyW3VdKQogICAgICAgIHsKICAgICAgICAgICAgbG9uZyBsb25nIHY9ZmkuZmlyc3Q7CgogICAgICAgICAgICBpZighdmlzaXRlZFt2XSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmlzaXRlZFt2XT10cnVlOwogICAgICAgICAgICAgICAgZGlzW3ZdPWRpc1t1XSsxOwogICAgICAgICAgICAgICAgcXUucHVzaCh2KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKdm9pZCBiZnMobG9uZyBsb25nIHgsIHZlY3RvcjxwYWlyPGxvbmcgbG9uZyxsb25nIGxvbmc+PiBhcnJbXSwgYm9vbCB2aXNpdGVkW10sIHZlY3Rvcjxsb25nIGxvbmc+ICZhbnMpCnsKICAgIHF1ZXVlPGxvbmcgbG9uZz4gcXU7CiAgICBxdS5wdXNoKHgpOwoKICAgIHdoaWxlKCFxdS5lbXB0eSgpKQogICAgewogICAgICAgIGxvbmcgbG9uZyBzej1xdS5zaXplKCk7CiAgICAgICAgbG9uZyBsb25nIG1uPUxMT05HX01BWDsKCiAgICAgICAgZm9yKGxvbmcgbG9uZyBpPTE7IGk8PXN6OyBpKyspCiAgICAgICAgewogICAgICAgICAgICBsb25nIGxvbmcgdT1xdS5mcm9udCgpOwogICAgICAgICAgICBxdS5wb3AoKTsKCiAgICAgICAgICAgIGlmKHU9PW4pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZm9yKGF1dG8gZmk6YXJyW3VdKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBsb25nIGxvbmcgdj1maS5maXJzdDsKICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB3PWZpLnNlY29uZDsKCiAgICAgICAgICAgICAgICBpZihkaXNbdl09PWRpc1t1XS0xKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIG1uPW1pbihtbix3KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgcXUucHVzaCh1KTsKICAgICAgICB9CgogICAgICAgIGlmKG1uPT1MTE9OR19NQVgpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICBhbnMucHVzaF9iYWNrKG1uKTsKCiAgICAgICAgZm9yKGxvbmcgbG9uZyBpPTE7IGk8PXN6OyBpKyspCiAgICAgICAgewogICAgICAgICAgICBsb25nIGxvbmcgdT1xdS5mcm9udCgpOwogICAgICAgICAgICBxdS5wb3AoKTsKCiAgICAgICAgICAgIGZvcihhdXRvIGZpOmFyclt1XSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbG9uZyBsb25nIHY9ZmkuZmlyc3Q7CiAgICAgICAgICAgICAgICBsb25nIGxvbmcgdz1maS5zZWNvbmQ7CgogICAgICAgICAgICAgICAgaWYoZGlzW3ZdPT1kaXNbdV0tMSAmJiB3PT1tbikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBxdS5wdXNoKHYpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9Cgp2b2lkIGlucHV0KCkKewogICAgY2luPj5uPj5tOwoKICAgIGZvcihsb25nIGxvbmcgaT0xOyBpPD1tOyBpKyspCiAgICB7CiAgICAgICAgbG9uZyBsb25nIHUsdix3OwoKICAgICAgICBjaW4+PnU+PnY+Pnc7CgogICAgICAgIGFyclt1XS5wdXNoX2JhY2soe3Ysd30pOwogICAgICAgIGFyclt2XS5wdXNoX2JhY2soe3Usd30pOwogICAgfQp9Cgp2b2lkIHNvbHZlKCkKewogICAgYm9vbCB2aXNpdGVkW01heE5dOwogICAgdmVjdG9yPGxvbmcgbG9uZz4gYW5zOwoKICAgIGJmcyhuLGFycix2aXNpdGVkLGRpcyk7CgogICAgYmZzKDEsYXJyLHZpc2l0ZWQsYW5zKTsKCiAgICBjb3V0PDxkaXNbMV08PCdcbic7CgogICAgZm9yKGxvbmcgbG9uZyB4OmFucykKICAgIHsKICAgICAgICBjb3V0PDx4PDwnICc7CiAgICB9Cn0KCmludCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7CgogICAgaW5wdXQoKTsKICAgIHNvbHZlKCk7Cn0=