func_code_string: #include<bits/stdc++.h>   #define LL long long   #define ULL unsigned long long   #define P pair<int,int>   #define PI acos(-1.0)   #define ls o<<1   #define rs o<<1|1   using namespace std;        const int mod=1e9+7;   const int base=19260817;   const LL INF=1e18;   const int maxn=2e5+10;   const double eps=1e-8;   int add(int x,int y){ x+=y;return x>=mod?x-mod:x; }   int sub(int x,int y){ x-=y;return x<0?x+mod:x; }   int mul(int x,int y){ return 1LL*x*y%mod; }      typedef pair<LL,int> pli;   int n,m;   LL d[maxn<<2];   bool vis[maxn<<2];   vector<P> g[maxn<<2];      void dijkstra(int n,int s)   {       priority_queue<pli,vector<pli>,greater<pli>> q;       for(int i=1;i<=n;i++) d[i]=INF,vis[i]=0;       d[s]=0,q.push(pli{0,s});       while(!q.empty()){           pli x=q.top();q.pop();           int u=x.second;           if(vis[u]) continue;           vis[u]=1;           for(auto e:g[u]){               int v=e.first,w=e.second;               if(d[u]+w<d[v]){                   d[v]=d[u]+w;                   q.push(pli{d[v],v});               }           }       }   }      inline void addedge(int u,int v,int w,int p,int q)   {       g[u+p*n].push_back(P{v+q*n,w});       g[v+p*n].push_back(P{u+q*n,w});   }      int main()   {   #ifdef LOCAL       freopen( test.in , r ,stdin);   #endif       ios::sync_with_stdio(false);cin.tie(0);       cin>>n>>m;       for(int i=1;i<=m;i++){           int u,v,w;cin>>u>>v>>w;           addedge(u,v,w,0,0);           addedge(u,v,w,1,1);           addedge(u,v,w,2,2);           addedge(u,v,w,3,3);           addedge(u,v,0,0,1);           addedge(u,v,0,2,3);           addedge(u,v,2*w,0,2);           addedge(u,v,2*w,1,3);       }       dijkstra(n<<2,1);       for(auto e:g[1]){           int v=e.first,w=e.second;           if(v<=n) d[v+3*n]=min(d[v+3*n],1LL*w);       }       for(int i=2;i<=n;i++) cout<<d[i+3*n]<<   ;       return 0;      }