N, Z, B = [ int(x) for x in input().split() ] bufety = [ int(x) for x in input().split() ] pocet_bufetu = [ 0 for n in range(N) ] for b in bufety: pocet_bufetu[b] = 1 sjezdovky = [ [] for n in range(N) ] for z in range(Z): odkud, kam = [ int(x) for x in input().split() ] sjezdovky[odkud].append( kam ) # Pomocné pole, ve kterém si pamatujeme již vypočítané hodnoty M() pamet = [ None for n in range(N) ] def M(x): if pamet[x] is not None: return pamet[x] # hodnotu M(x) už známe if x == 0: return 0 # víme, že M(0) je 0 odpoved = float('-inf') for kam in sjezdovky[x]: odpoved = max( odpoved, pocet_bufetu[x] + M(kam) ) pamet[x] = odpoved return odpoved print( M(1) )