#include #include using namespace std; vector g[1010]; bool sel[1010]; int n , k , T , sol , val , i , x , y , j; bool ok; int nod1[1010] , nod2[1010]; void dfs(int x , int KK) { int i; sel[x]=true; if (x == T) {val = KK , ok = true;} for (i=0;i> n >> k; for (i = 1; i <= k; ++i) cin >> nod1[i]; for (i = 1; i <= k;++i) cin >> nod2[i]; for (i = 1; i <= n; ++i) { cin >> x >> y; g[x].push_back(y); g[y].push_back(x); } for (i = 1; i <= k; ++i) { for (j = 1; j <= n; ++j) sel[j] = false; ok = false; T = nod2[i]; dfs(nod1[i] , 1); sol += val; } cout << sol <<'\n'; return 0; }