#include #include #include #include #include using namespace std; #define RREP(i,s,e) for (i = e-1; i >= s; i--) #define rrep(i,n) RREP(i,0,n) #define REP(i,s,e) for (i = s; i < e; i++) #define rep(i,n) REP(i,0,n) #define INF 1e8 typedef long long ll; int main() { int i, n, m, k; ll d[1000]; set s[2]; vector>> edges; cin >> n >> m >> k; edges.resize(n+1); rep (i,m) { int a, b, c; cin >> a >> b >> c; edges[a][c].push_back(b); edges[b][c].push_back(a); } rep (i,k) cin >> d[i]; rep (i,n) s[0].insert(i+1); rep (i,k) { for (int a : s[i%2]) { for (int b : edges[a][d[i]]) s[(i+1)%2].insert(b); } s[i%2].clear(); } cout << s[k%2].size() << endl; for (int a : s[k%2]) cout << a << " "; cout << endl; return 0; }