#include using namespace std; int main() { // ifstream cin("300.in"); int D, n, m; cin >> D >> n >> m; vector 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> G(D + 1, vector ()); for(int i = 0; i < m; ++i) { int x, y; cin >> x >> y; G[y].push_back(x); } vector 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"; }