#include <iostream> #include <fstream> #include <algorithm> #include <math.h> #include <string> #include <vector> #include <stdio.h> #include <queue> #include <set> #include <map> #define LL long long #define pb push_back #define lm 1010 #define mk make_pair #define MOD 1000000007 using namespace std; int n,m,d,x,y; int dp[lm]; vector<int> l[lm]; bool v[lm]; int main(){ //freopen("data.txt","r",stdin); scanf("%d%d%d",&d,&n,&m); for(int i=0; i<n; i++) { scanf("%d",&x); v[x]=1; } for(int i=0; i<m; i++) { scanf("%d%d",&x,&y); l[x].pb(y); } fill_n(dp,lm,10000); dp[d+1]=0; for(int j=d; j>0; j--) { if(!v[j]) dp[j]=min(dp[j],dp[j+1]); for(int i=0; i<l[j].size(); i++) { dp[j]=min(dp[j],dp[l[j][i]+1]+1); } //cout<<dp[j]<<' '; } cout<<dp[1]; }