题目链接
dfs
import java.util.*;
import java.math.*;
import java.io.*;
public class Main {
public static int k,n,m,cows[],route[][],numc[];
public static void main(String[] args)throws IOException {
Scanner sc = new Scanner(System.in);
k=sc.nextInt();
n=sc.nextInt();
m=sc.nextInt();
cows=new int[k+1];
numc=new int[n+1];
route=new int[n+1][n+1];
for(int i=1;i<=k;i++)
cows[i]=sc.nextInt();
for(int i=0;i<m;i++){
route[sc.nextInt()][sc.nextInt()]=1;
}
for(int i=1;i<=k;i++){
int[] is=new int[n+1];
dfs(is,cows[i]);
}
int res=0;
for(int i=1;i<=n;i++)
if(numc[i]==k)
res++;
System.out.println(res);
}
public static void dfs(int[] is,int cur){
//System.out.println(cur);
is[cur]=1;
numc[cur]++;
for(int i=1;i<=n;i++){
if(route[cur][i]!=0&&is[i]!=1)
dfs(is,i);
}
}
}