#include #include using namespace std; struct Interval { int x, y; bool operator < (Interval A) const { return x < A.x || (x == A.x && y < A.y); } }; int D, N, M; int z[1004]; Interval a[1004]; int main() { cin >> D >> N >> M; for (int i = 1; i <= N; i++) cin >> z[i]; sort(z + 1, z + N + 1); for (int i = 1; i <= M; i++) cin >> a[i].x >> a[i].y; sort(a + 1, a + M + 1); Interval c; int nrz, nrd; int dmin = 10000; for (int i = 1; i < M; i++) { c = a[i]; nrz = 0; nrd = 1; for (int j = 1; j <= N; j++) if (z[j] >= c.x && z[j] <= c.y) nrz++; for (int j = i + 1; j <= M; j++) { if (c.y >= a[j].x) continue; else { c = a[j]; nrd++; for (int k = 1; k <= N; k++) if (z[k] >= c.x && z[k] <= c.y) nrz++; } } if (nrz == N) dmin = min(dmin, nrd); } cout << nrd; return 0; }