#include <vector>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
void dfs(vector<int> a[15000], int v, bool visit[1500], int time[1500]);
int main()
{
int cow[150] = {0}, time[1500] = {0};
int k, n, m, u, v, ans = 0, mr;
bool visit[1500];
vector<int> pic[15000];
cin >> k >> n >> m;
for(int i = 1; i <= k; i++)
{
cin >> mr;
cow[mr] = 1;
}
for(int i = 1; i <= m; i++)
{
cin >> u >> v;
pic[u].push_back(v);
}
for(int i = 1; i <= n; i++)
{
if(cow[i] == 1)
{
memset(visit, 0, sizeof(visit));
dfs(pic, cow[i], visit, time);
}
}
for(int i = 1; i <= n; i++)
{
if(time[i] == k)
ans++;
}
cout << ans << endl;
return 0;
}
void dfs(vector<int> a[15000], int v, bool visit[1500], int time[1500])
{
time[v]++;
visit[v] = true;
for(int i = 0; i < a[v].size(); i++)
{
if(!visit[a[v][i]])
dfs(a, a[v][i], visit, time);
}
}
属实不会了