#include using namespace std; int main() { //ifstream cin("300.in"); int D, n, m; cin >> D >> n >> m; vector v(D + 1, 0); for(int i = 0; i < n; ++i) { int x; cin >> x; v[x] = 1; } 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; } for(int i = D; i >= 0; --i) if(dp[i] < 1e9) { cout << dp[i] << "\n"; return 0; } else if(v[i]) { cout << "-1\n"; return 0; } }