#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define MOD 105011 #define NMAX 1005 #define INF 0x3f3f3f3f #define pb push_back using namespace std; //FILE *fin = freopen("schi.in", "r", stdin); //FILE *fout = freopen("schi.out", "w", stdout); typedef pair pii; int memo[NMAX][NMAX]; int days[NMAX]; pii v[NMAX]; int d, n, m; int solve(int poz, int st) { if (memo[poz][st] != -1) return memo[poz][st]; if (days[d] - days[st - 1] == 0) return memo[poz][st] = 1; int i, res = INF; for (i = poz + 1; i < m; ++i) { if (v[i].first >= st && days[v[i].first] - days[st] == 0) res = min(res, solve(i, v[i].second + 1) + 1); } return memo[poz][st] =res; } int main() { int i, x, res; cin >> d >> n >> m; for (i = 0; i < n; ++i) { cin >> x; days[x] = 1; } for (i = 1; i <= d; ++i) days[i] += days[i - 1]; for (i = 0; i < m; ++i) cin >> v[i].first >> v[i].second; sort(v, v + m); res = INF; memset(memo, -1, sizeof(memo)); for (i = 0; i < m; ++i) { if (days[v[i].first-1] == 0) res = min(res, solve(i, v[i].second + 1)); else break; } cout << res; return 0; }