#include #include #include using namespace std; int N, M, K; vector>> fee(105); int d[1010]; bool check(int town, int di) { for (auto& p: fee[town]) { if (p.second == d[di]) { if (di == 0) return true; if (check(p.first, di-1)) return true; } } return false; } int main() { int a, b, c; cin >> N >> M >> K; for (int i = 0; i < M; i++) { cin >> a >> b >> c; fee[a].push_back(make_pair(b, c)); fee[b].push_back(make_pair(a, c)); } for (int i = 0; i < K; i++) { cin >> d[i]; } vector t; for (int i = 1; i <= N; i++) { if (check(i, K-1)) t.push_back(i); } cout << t.size() << "\n" << t[0]; for (int i = 1; i < t.size(); i++) { cout << " " << t[i]; } return 0; }