#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; }