#include <iostream> #include <fstream> #include <algorithm> using namespace std; ifstream f("date.in"); ofstream g("date.out"); int n, m,i,j, d, dmin=1005, v[1005]; struct pereche {int x; int y; int beg; int en; int nr;}; pereche c[1005]; bool cmp(const pereche &a, const pereche &b) { if(a.x==b.x) return a.y<=b.y; return a.x<=b.x; } int cautare_binara(int x, int y, int a[], int n) { int pi=1, pf=n, mij; while(pi<=pf) { mij=(pi+pf)/2; if (x>=a[mij]) return mij; else if (x<=a[mij]) pf=mij-1; else pi=mij+1; } return mij; } int main() { cin>>d>>n>>m; for(i=1;i<=n;i++) cin>>v[i]; for(i=1;i<=m;i++) { cin>>c[i].x>>c[i].y; c[i].beg=1005; c[i].nr=1; } sort(v+1,v+n+1); sort(c+1,c+m+1, cmp); for(i=1;i<=n;i++) { for(j=1;j<=m;j++) if(c[j].x<=v[i] && v[i]<=c[j].y) { c[j].beg=min(c[j].beg, i); c[j].en=max(c[j].en,i); } } /*for(i=1;i<=m;i++) cout<<c[i].x<<' '<<c[i].y<<' '<<c[i].beg<<' '<<c[i].en<<endl;*/ for(i=1;i<m;i++) { if(c[i].beg==1) { for(j=i+1;j<=m;j++) { if(c[j].beg==c[i].en+1) { c[i].en=c[j].en; c[i].nr++; } } } } for(i=1;i<m;i++) { if(c[i].beg==1) dmin=min(dmin,c[i].nr); } cout<<dmin; /*cout<<endl; for(i=1;i<=m;i++) cout<<c[i].x<<' '<<c[i].y<<' '<<c[i].beg<<' '<<c[i].en<<' '<<c[i].nr<<endl;*/ return 0; }