#include using namespace std; int main(void){ int n,m; cin>>n>>m; vector>>v(n); while(m--){ int a,b,c; cin>>a>>b>>c; v[a-1].push_back({b-1,c}); v[b-1].push_back({a-1,c}); } vectora(n),b(n),c(n); for(int i=0;i>a[i]; for(int i=0;i>b[i]; for(int i=0;i>c[i]; const long long INF=2e18; vectorvis(n,INF); priority_queue>pq; pq.push({0,0}); vis[0]=0; while(!pq.empty()){ long long val=-pq.top()[0],now=pq.top()[1]; pq.pop(); if(vis[now]!=val)continue; long long tmp=(val==0?a[now]:(val+a[now]-1)/a[now]*a[now]); for(int i=0;inxv){ vis[nx]=nxv; pq.push({-nxv,nx}); } } } cout<