#include <bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
constexpr int N = 5e4, M = N, inf = 0x3f3f3f3f;
int k, n, m, a, b, tmp, cnt;
bool vis[N];
int arr[N];
vector<int> has;
int h[N], e[M], ne[M], idx;
void add(int a, int b)
{
e[idx] = b, ne[idx] = h[a], h[a] = idx++;
}
void dfs(int u)
{
arr[u]++;
vis[u] = true;
for (int i = h[u]; i != -1; i = ne[i])
{
int j = e[i];
if (!vis[j])
{
dfs(j);
}
}
}
void solve()
{
cin >> k >> n >> m;
memset(h, -1, sizeof h);
// 将有牛的牧场保存;
for (int i = 0; i < k; i++)
{
cin >> tmp;
has.push_back(tmp);
}
for (int i = 0; i < m; i++)
{
cin >> a >> b;
add(a, b);
}
// 从有牛的地方开始找;
for (const auto &it : has)
{
dfs(it);
memset(vis, 0, sizeof vis);
}
// for (int i = 1; i <= n; i++)
// {
// cout << arr[i] << ' ';
// }
// cout << endl;
int ans = 0;
int length = has.size();
for (int i = 1; i <= n; i++)
{
if (arr[i] == length)
{
ans++;
}
}
cout << ans << endl;
}
signed main()
{
ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
solve();
return 0;
}