# načítání vstupu viz https://ksp.mff.cuni.cz/encyklopedie/parsovani-vstupu-python.html N, M, V, K = map(int, input().split()) vedouci = list(map(int, input().split())) # Připravíme pro každého seznam známých (zatím prázdný) Z = [] for i in range(N): Z.append([]) # Pole udávající, zda $i$-tý člověk dostal klíč D = [0] * N # Naplníme seznamy známých podle dvojic na vstupu for i in range(M): A, B = map(int, input().split()) Z[A].append(B) # A je známým B... Z[B].append(A) # ... a B známým A aktualni = vedouci pristi = [] celkem = 0 for i in range(K): # Připočítáme k celkovému počtu lidí, co dostali klíč celkem += len(aktualni) # Poznamenáme si, že už dostali klíč for A in aktualni: D[A] += 1 # Zjistíme, komu dají kopie for A in aktualni: for B in Z[A]: # Přeskočíme lidi, kteří už mají klíč z dřívějška (tedy lepší) if D[B]: continue pristi.append(B) # Nakonec ještě musíme připočítat poslední seznam lidí, kteří mají klíč # kvality přesně K celkem += len(pristi) print(celkem)