#include <bits/stdc++.h>
using namespace std;

int main() {
    
   // ifstream cin("300.in");
    
    int D, n, m; cin >> D >> n >> m;
    vector<int> v(D + 1, 0);
    
    int maxx = 0;
    for(int i = 0; i < n; ++i) {
        int x; cin >> x;
        v[x] = 1;
        maxx = max(maxx, x);
    }
    
    vector<vector<int>> G(D + 1, vector<int> ());

    for(int i = 0; i < m; ++i) {
        int x, y; cin >> x >> y;
        G[y].push_back(x);
    }

    vector<int> dp(D + 1, 1e9);
    
    dp[0] = 0;

    for(int i = 1; i <= D; ++i)
        for(auto x : G[i])
            for(int j = x - 1; j >= 0; --j) {
                dp[i] = min(dp[i], dp[j] + 1);
                if(v[j])
                    break;
            }
        
    int ans = 1e9;
    for(int i = D; i >= maxx; --i)
        ans = min(ans, dp[i]);

    cout << ans << "\n";
}