#include <bits/stdc++.h>

using namespace std;

int xx[1111], yy[1111];
int dp[1111];
bool spec[1111];
int psum[1111];

const int INF = 10000;

int get(int xx, int yy) {
    if (xx > yy)
        return 0;
    return psum[yy] - psum[xx - 1];
}

int main() {
    int n, m, k;
    scanf("%d%d%d", &n, &k, &m);
    for (int i = 1; i <= k; ++i) {
        int foo;
        scanf("%d", &foo);
        spec[foo] = 1;
    }
    for (int i = 1; i <= n; ++i)
        psum[i] = psum[i - 1] + spec[i];
    for (int i = 1; i <= m; ++i)
        scanf("%d%d", &xx[i], &yy[i]);
    for (int i = 1; i <= n; ++i) {
        dp[i] = INF;
        for (int j = 1; j <= m; ++j)
            if (yy[j] <= i)
                if (get(yy[j] + 1, i) == 0)
                    dp[i] = min(dp[i], dp[xx[j] - 1] + 1);
        if (!spec[i])
            dp[i] = dp[i - 1];
    }
    printf("%d", dp[n]);
}