from queue import Queue N, Z, B = [ int(x) for x in input().split() ] bufety = [ int(x) for x in input().split() ] sjezdovky_dolu = [ [] for n in range(N) ] sjezdovky_nahoru = [ [] for n in range(N) ] for z in range(Z): odkud, kam = [ int(x) for x in input().split() ] sjezdovky_dolu[odkud].append( kam ) sjezdovky_nahoru[kam].append( odkud ) def prohledej(graf, start): # Prohledá do šířky daný graf z daného vrcholu, # vrátí pole booleanů: kam se můžeme dostat, a kam ne. navstivil = [ False for _ in range(len(graf)) ] navstivil[start] = True Q = Queue() Q.put(start) while not Q.empty(): kde = Q.get() for kam in graf[kde]: if not navstivil[kam]: navstivil[kam] = True Q.put(kam) return navstivil umime_z_1 = prohledej( sjezdovky_dolu, 1 ) umime_do_0 = prohledej( sjezdovky_nahoru, 0 ) dobre_bufety = [ b for b in bufety if umime_z_1[b] and umime_do_0[b] ] print( len( dobre_bufety ) )