#include #include #include using namespace std; const int LEN = 1005; int D, N, M; bool a[LEN]; vector l[LEN]; int d[LEN]; int main() { memset(d, 0x3f, sizeof d); cin >> D >> N >> M; while (N--) { int x; cin >> x; a[x] = true; } while (M--) { int x, y; cin >> x >> y; l[x].push_back(y + 1); } d[D + 1] = 0; for (int i = D; i > 0; --i) { if (!a[i]) d[i] = min(d[i], d[i + 1]); for (int j : l[i]) d[i] = min(d[i], d[j] + 1); } cout << d[1] << "\n"; return 0; }