#include "crocodile.h"
#include <bits/stdc++.h>
using namespace std;
const int inf = 1e9 + 1;
#define ar array
int travel_plan(int n, int m, int R[][2], int L[], int k, int P[]) {
vector<ar<int, 2>> dist(n, {inf, inf});
vector<vector<ar<int, 2>>> g(n);
for (int i = 0; i < m;i++) {
int u = R[i][0];
int v = R[i][1];
int w = L[i];
g[u].push_back({v, w});
g[v].push_back({u, w});
}
priority_queue<ar<int, 2>, vector<ar<int, 2>>, greater<ar<int, 2>> > pq;
for (int i = 0; i < k;i++)
dist[P[i]] = {0, 0}, pq.push({0, P[i]});
while (!pq.empty()) {
auto [w, u] = pq.top();
pq.pop();
if (w != dist[u][1] || w >= inf)
continue;
for (auto [v, w1] : g[u]) {
int cur = w + w1;
if (cur < dist[v][0])
swap(cur, dist[v][0]);
if (cur < dist[v][1] && cur < inf)
pq.push({dist[v][1] = cur, v});
}
}
return (dist[0][1] >= inf ? -1 : dist[0][1]);
}