#include #include using namespace std; int d, n, m; int v[1001]; struct scutire{ int x, y; }; scutire q[1001]; scutire rez[1001]; bool sortez(scutire a, scutire b) { return a.x < b.x; } int scut[1001]; int main() { cin>>d>>n>>m; for (int i = 1; i <= n; ++i) { cin>>v[i]; scut[v[i]] = 1; } for (int i = 1; i <= m; ++i) { cin>>q[i].x>>q[i].y; } int mini = 100000; sort(q + 1, q + m + 1, sortez); for (int i = 1; i <= m; ++i) { for (int j = i - 1; j >= 0; --j) { if (q[i].x > q[j].y ) { if (rez[j].x > rez[i].x) { rez[i] = rez[j]; } else { if (rez[j].x > rez[i].x && rez[j].y < rez[i].y) { rez[i].y = rez[j].y; } } } } ++rez[i].y; for (int j = q[i].x; j <= q[i].y; ++j) { rez[i].x += scut[j]; } if (rez[i].x == n && rez[i].y < mini) { mini = rez[i].y; } cout<