#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll dp[1024];
ll l[1024];
vector<int> skipped;
vector<pair<int,int> > leaves;
ll inf = 2000000000;
    int d,n,m;

int main () {

    ios_base::sync_with_stdio(false);
  //  freopen("C:\\in.txt","r", stdin);
    cin >> d >> n >> m;

    for(int i=0; i<1024; ++i){
        dp[i] = inf;
    }
    memset(l, 0, sizeof(l));
    for(int i=0; i<n; ++i){
        int x;
        cin >> x;
        skipped.push_back(x);
        l[x] = 1;
    }
    for(int i=0; i<=d; ++i){
        if(l[i]) break;
        dp[i] = 0;
    }


    while(m--){
        int x,y;
        cin >> x >> y;
        leaves.push_back(make_pair(x,y));
    }
    sort(leaves.begin(), leaves.end());
    for(int i=0; i<leaves.size(); ++i){
        int b = leaves[i].first;
        int e = leaves[i].second;
        int c= 0;
        for(int j=b; j<=e; ++j){
            c+=l[j];
        }
        if(c==0) continue;
        ll curr_min = inf;
        for(int j=b-1; j>=0; j--){
            curr_min = min(curr_min, dp[j]+1);
            if(l[j]) break;
        }
        dp[e] = curr_min;
    }
    ll res = inf;
    for(int j=d; j>=0; j--){
        res = min(res, dp[j]);
        if(l[j]) break;
    }
    cout << res << endl;

    return 0;
}