#include int D, N, M, skipped[1001], X[1001], Y[1001], taken[1001], cover[1001], longest, maxx, ans; int main() { // freopen("data.in", "r", stdin); scanf("%d%d%d", &D, &N, &M); for (int i = 0; i < N; ++i) { scanf("%d", &skipped[i]); } for (int i = 0; i < M; ++i) { scanf("%d%d", &X[i], &Y[i]); } for (int i = 0; i < M; ++i) { for (int j = 0; j < N; ++j) { if (X[i] <= skipped[j] && skipped[j] <= Y[i]) { ++cover[i]; } } } for (int i = 0; i < N; ++i) { longest = maxx = -1; for (int j = 0; j < M; ++j) { if (X[j] <= skipped[i] && skipped[i] <= Y[j] && taken[j]) { longest = 1; break; } } if (longest == -1) { for (int j = 0; j < M; ++j) { if (X[j] <= skipped[i] && skipped[i] <= Y[j] && cover[j] > maxx) { maxx = cover[j]; longest = j; } } if (taken[longest] == 0) { ++ans; taken[longest] = 1; } } } printf("%d", ans); return 0; }