#include "crocodile.h"
#include <queue>
#include <vector>
using namespace std;
#define MAXN 100005
typedef pair<int,int> pii;
static int N,DF[MAXN],DS[MAXN],V[MAXN];
static vector<int> con[MAXN],conv[MAXN];
static priority_queue<pii> que;
int travel_plan(int n, int m, int R[][2], int L[], int K, int P[])
{
int i,k,v,q,a,b,c;
N = n;
for (i=0;i<m;i++){
a = R[i][0]+1, b = R[i][1]+1, c = L[i];
con[a].push_back(b), conv[a].push_back(c);
con[b].push_back(a), conv[b].push_back(c);
}
for (i=1;i<=N;i++) DF[i] = DS[i] = 2e9;
for (i=0;i<K;i++){
k = P[i]+1;
DF[k] = DS[k] = 0;
que.push(pii(0,k));
}
while (!que.empty()){
q = que.top().second; que.pop();
if (V[q]) continue;
V[q] = 1;
for (i=con[q].size();i--;){
k = con[q][i]; v = conv[q][i];
if (V[k]) continue;
if (DF[k] > DS[q]+v){
DS[k] = DF[k], DF[k] = DS[q]+v;
if (DS[k] < 2e9) que.push(pii(-DS[k],k));
}
else if (DS[k] > DS[q]+v){
DS[k] = DS[q]+v;
que.push(pii(-DS[k],k));
}
}
}
return DS[1];
}
I2luY2x1ZGUgImNyb2NvZGlsZS5oIgojaW5jbHVkZSA8cXVldWU+CiNpbmNsdWRlIDx2ZWN0b3I+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIE1BWE4gMTAwMDA1CnR5cGVkZWYgcGFpcjxpbnQsaW50PiBwaWk7CgpzdGF0aWMgaW50IE4sREZbTUFYTl0sRFNbTUFYTl0sVltNQVhOXTsKc3RhdGljIHZlY3RvcjxpbnQ+IGNvbltNQVhOXSxjb252W01BWE5dOwpzdGF0aWMgcHJpb3JpdHlfcXVldWU8cGlpPiBxdWU7CgppbnQgdHJhdmVsX3BsYW4oaW50IG4sIGludCBtLCBpbnQgUltdWzJdLCBpbnQgTFtdLCBpbnQgSywgaW50IFBbXSkKewogICAgaW50IGksayx2LHEsYSxiLGM7CiAgICBOID0gbjsKICAgIGZvciAoaT0wO2k8bTtpKyspewogICAgICAgIGEgPSBSW2ldWzBdKzEsIGIgPSBSW2ldWzFdKzEsIGMgPSBMW2ldOwogICAgICAgIGNvblthXS5wdXNoX2JhY2soYiksIGNvbnZbYV0ucHVzaF9iYWNrKGMpOwogICAgICAgIGNvbltiXS5wdXNoX2JhY2soYSksIGNvbnZbYl0ucHVzaF9iYWNrKGMpOwogICAgfQogICAgZm9yIChpPTE7aTw9TjtpKyspIERGW2ldID0gRFNbaV0gPSAyZTk7CiAgICBmb3IgKGk9MDtpPEs7aSsrKXsKICAgICAgICBrID0gUFtpXSsxOwogICAgICAgIERGW2tdID0gRFNba10gPSAwOwogICAgICAgIHF1ZS5wdXNoKHBpaSgwLGspKTsKICAgIH0KICAgIHdoaWxlICghcXVlLmVtcHR5KCkpewogICAgICAgIHEgPSBxdWUudG9wKCkuc2Vjb25kOyBxdWUucG9wKCk7CiAgICAgICAgaWYgKFZbcV0pIGNvbnRpbnVlOwogICAgICAgIFZbcV0gPSAxOwogICAgICAgIGZvciAoaT1jb25bcV0uc2l6ZSgpO2ktLTspewogICAgICAgICAgICBrID0gY29uW3FdW2ldOyB2ID0gY29udltxXVtpXTsKICAgICAgICAgICAgaWYgKFZba10pIGNvbnRpbnVlOwogICAgICAgICAgICBpZiAoREZba10gPiBEU1txXSt2KXsKICAgICAgICAgICAgICAgIERTW2tdID0gREZba10sIERGW2tdID0gRFNbcV0rdjsKICAgICAgICAgICAgICAgIGlmIChEU1trXSA8IDJlOSkgcXVlLnB1c2gocGlpKC1EU1trXSxrKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiAoRFNba10gPiBEU1txXSt2KXsKICAgICAgICAgICAgICAgIERTW2tdID0gRFNbcV0rdjsKICAgICAgICAgICAgICAgIHF1ZS5wdXNoKHBpaSgtRFNba10saykpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIERTWzFdOwp9