#include<bits/stdc++.h>
using namespace std;
int e[1001][1001],k,n,pos[1001],ans,m;
bool vis[1001],OK[1001][1001];
void dfs(int u){//遍历
if(vis[u])return;
vis[u]=1;
for(int i=1;i<=n;i++){
if(i==u)continue;
if(e[u][i])dfs(i);
}
}
void solve(){
for(int i=1;i<=k;i++){
for(int j=1;j<=n;j++){
memset(vis,0,sizeof(vis));
dfs(pos[i]);
if(vis[j])OK[pos[i]][j]=1;//若到达过,标记
}
}
bool flag;
for(int i=1;i<=k;i++){
flag=1;//枚举奶牛
for(int j=1;j<=n;j++){//枚举点
if(!OK[pos[i]][j]){//只要有一只奶牛到不了就不行
break;flag=0;
}
}
if(flag)ans++;//所有奶牛都能到达
}
}
int main(){
cin>>k>>n>>m;
for(int i=1;i<=k;i++)cin>>pos[i];
for(int i=1;i<=m;i++){
int u,v;cin>>u>>v;
e[u][v]=1;
}
solve();
cout<<ans;
}