#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define loop(i,a,b) for(int i=a;i pii; typedef vector vi; typedef vector vvi; typedef vector vp; typedef vector vvp; typedef vector vs; typedef vector vd; typedef tuple tp; typedef vector vt; typedef vector vvd; typedef pair pip; typedef vectorvip; const double PI=acos(-1); const double EPS=1e-7; const int inf=1e8; const ll INF=1e16; int dx[]={0,1,0,-1}; int dy[]={1,0,-1,0}; int main(){ int n,m,k; cin>>n>>m>>k; vvp G(n); rep(i,m){ int a,b,c; cin>>a>>b>>c; a--;b--; G[a].pb(pii(b,c)); G[b].pb(pii(a,c)); } vi dp(n,1); rep(i,k){ int a;cin>>a; vi ndp(n); rep(j,n)if(dp[j]){ rep(k,G[j].size())if(G[j][k].second==a){ ndp[G[j][k].first]=true; } } dp=ndp; } vi out; rep(i,n)if(dp[i])out.pb(i+1); cout<