#include using namespace std; using ll=long long; using pint=pair; template using min_priority_queue = priority_queue, greater>; #define rep(i,n) for(int i=0;i<(n);++i) template void chmax(T& a,T b){if(a void chmin(T& a,T b){if(a>b){a=b;};} const int inf=1e9; const ll linf=1e18; int main(){ int n,m;cin>>n>>m; vector> graph(n); rep(i,m){ int u,v,w;cin>>u>>v>>w; u--,v--; graph[u].emplace_back(v,w); graph[v].emplace_back(u,w); } vector a(n),b(n),c(n); rep(i,n)cin>>a[i]; rep(i,n)cin>>b[i]; rep(i,n)cin>>c[i]; vector dist(n,linf); min_priority_queue> pq; pq.emplace(dist[0]=0,0); while(pq.size()){ auto [d,v]=pq.top();pq.pop(); if(dist[v]