#include #include #include #include #include #include #include #include #include using namespace std; struct edge{ int to; int cost; }; bool dfs( vector > &G, vector &d, int pos, int x){ if( x==0 ){ return true; } bool ret = false; for(int i=0; i> N >> M >> K; vector< vector > G(N); for(int i=0; i> a >> b >> c; a--; b--; G[a].push_back( (edge){b, c} ); G[b].push_back( (edge){a, c} ); } vector d(K); for(int i=0; i> d[i]; vector ans; for(int i=0; i