#include using namespace std; struct State{ int x; // location int d; // drinks int t; // time }; int main(){ int np; cin>>np; vector t(np); for (auto &i: t) cin>>i; int n; cin>>n; vector c(n); for (auto &i: c) cin>>i; int nm; cin>>nm; vector> e(n,vector(n,1'000'000)); for (int i=0; i>a>>b>>d; --a, --b; e[a][b]=min(e[a][b],d); e[b][a]=min(e[b][a],d); } for (int i=0; i> dist(n,vector(np,1'000'000)); vector> visited(n,vector(np)); for (int i=n; i--;){ dist[i][0]=e[0][i]+t[0]; } for (State s{0,0,0}; s.d!=np; s.d++){ for (s.x=0; s.xc[s.x]) continue; best=max(best,s.d+1); if (s.d+1