#include #include #include #define X first #define Y second using namespace std; int D, N, M; bool skip[1000 + 10]; vector jmp[1000 + 10]; int DP[1000 + 10]; int main() { cin >> D >> N >> M; for(int i = 1; i <= N; ++i) { int t; cin >> t; skip[t] = 1; } int x, y; for(int i = 1; i <= M; ++i) { cin >> x >> y; jmp[x].push_back(y); } for(int i = 1; i <= D; ++i) DP[i] = (1 << 30); for(int i = 1; i <= D; ++i) { for(auto j: jmp[i]) { DP[j] = min(DP[j], 1 + DP[i - 1]); } if(skip[i] == 0) DP[i] = min(DP[i], DP[i - 1]); } int mn = 1 << 30; for(int i = D; i >= 1; --i) { if(DP[i] < mn) mn = DP[i]; if(skip[i]) break; } cout << mn << "\n"; return 0; }