#include <stdio.h>

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] && (cover[j] > maxx || (cover[j] >= maxx && taken[j]))) {
                maxx = cover[j];
                longest = j;
            }
        }

        if (taken[longest] == 0) {
            ++ans;
            taken[longest] = 1;
        }
    }

    printf("%d", ans);

    return 0;
}