#include #include #include #define NMAX 1005 using namespace std; int i, n, m, k, j, l, p, ans = 0, v[NMAX], z, st, dr, used = 0, curr = 1, c; struct b { int x, y; }a[NMAX]; bool cmp(b a, b aa) { if (a.x == aa.x) return a.y < aa.y; return a.x < aa.x; } int main() { cin >> z >> n >> m; for (i = 1; i <= n; ++ i) cin >> v[i]; for (i = 1; i <= m; ++ i) cin >> a[i].x >> a[i].y; sort(v + 1, v + n + 1); sort(a + 1, a + m + 1, cmp); // for (i = 1; i <= m; ++ i) // cout << a[i].x << " " << a[i].y << '\n'; while (used < n) { c = 1; for (i = c; i <= m && v[curr] <= a[i].y; ++ i) if (v[curr] >= a[i].x && v[curr] <= a[i].y) for (j = curr + 1; j <= n && v[j] <= a[i].y; ++ j) c = max(c, j - curr + 1); ans ++; used += c; curr = j + 1; c = i + 1; } cout << ans; return 0; }