#include using namespace std; #define int long long #define pb push_back #define fi first #define se second #define FOR(i,n) for(int i = 0;i=(s);i--) #define all(v) (v).begin(),(v).end() #define chmin(a,b) a=min((a),(b)) #define chmax(a,b) a=max((a),(b)) #define endl '\n' #define IOS() ios_base::sync_with_stdio(0);cin.tie(0) typedef long long ll; typedef pairpint; typedef vectorvint; typedef vectorvpint; const ll MOD=1000000007,INF=1ll<<60; typedef pairP2; int N,M; vpint g[100010]; int dp[100010][2]; signed main() { IOS(); cin>>N>>M; vpint v(M); rep(i,0,M){ int a,b,c; cin>>a>>b>>c; a--;b--; v[i]={a,b}; g[a].pb({b,c}); g[b].pb({a,c}); } rep(i,0,100010)rep(j,0,2)dp[i][j]=INF; dp[0][0]=dp[0][1]=0; priority_queue,greater>que; que.push(P2(0,{0,0})); while(!que.empty()){ P2 p=que.top(); que.pop(); int cost=p.fi; int now=p.se.fi; int j=p.se.se; if(dp[now][j]cost){ que.push(P2(dp[e.fi][1]=cost,{e.fi,1})); } } if(dp[e.fi][j]>cost+e.se){ que.push(P2(dp[e.fi][j]=cost+e.se,{e.fi,j})); } } } rep(i,0,N){ cout<