#include #include #include #include #include using namespace std; int solve(int n, int f, vector > > &h); int main() { int n, m, k; cin >> n >> m >> k; vector > > h; h.resize(m); for (int i = 0; i> a >> b >> c; h[i] = make_pair(c,make_pair(a,b)); } sort(h.begin(), h.end()); long x; vector nr; for (int i = 0; i < k; i++) { vector r; cin >> x; for (int f = 0; f < m; f++) { if (h[f].first == x) { if (i == 0) { r.push_back(h[f].second.first); r.push_back(h[f].second.second); } else { int y; for (int j = 0; j < nr.size(); j++) { y = solve(nr[j], f, h); if (y) { r.push_back(y); } } } } } sort(r.begin(), r.end()); unique(r.begin(), r.end()); nr.clear(); copy(r.begin(), r.end(), back_inserter(nr)); } cout << nr.size() << endl; for (int i = 0; i > > &h) { if (n == h[f].second.first) { return h[f].second.second; } else if (n == h[f].second.second) { return h[f].second.first; } return 0; }