#include #include #include #include #include #include #include using namespace std; typedef pair ii; const int Maxn = 1005; int d, n, m; int days[Maxn]; vector seq[Maxn]; int dp[Maxn]; int Get(int l, int r) { return days[r] - (l? days[l - 1]: 0); } int main() { scanf("%d %d %d", &d, &n, &m); for (int i = 0; i < n; i++) { int cur; scanf("%d", &cur); days[cur]++; } for (int i = 1; i <= d; i++) days[i] += days[i - 1]; for (int i = 0; i < m; i++) { int a, b; scanf("%d %d", &a, &b); seq[a].push_back(b); } fill(dp, dp + Maxn, Maxn); dp[0] = 0; for (int i = 0; i <= d; i++) { if (Get(i, i) == 0) dp[i + 1] = min(dp[i + 1], dp[i]); for (int j = 0; j < seq[i].size(); j++) { int r = seq[i][j]; if (Get(i, r) > 0) dp[r + 1] = min(dp[r + 1], dp[i] + 1); } } printf("%d\n", dp[d + 1]); return 0; }