#include<algorithm> #include<iostream> #include<vector> using namespace std; vector <pair<int,int> > v; vector <int> days; int apd[1010],apv[1010],n,m,d; int count(int x) { int i,nr=0,a=v[x].first,b=v[x].second; for(i=0;i<n;i++) { if(days[i]>b) return nr; if(apd[days[i]]==0 && a<=days[i] && days[i]<=b) nr++; } return nr; } int main() { int i,zile,j,maxi,poz,nr,a,b,ture=0; cin>>d>>n>>m; zile=n; for(i=1;i<=n;i++){ cin>>a; days.push_back(a); } sort(days.begin(),days.end()); for(i=1;i<=m;i++){ cin>>a>>b; v.push_back(make_pair(a,b)); } while(zile>0) { maxi=-9999; for(i=0;i<m;i++) { if(apv[i]==0) { nr=count(i); if(maxi<nr) { maxi=nr; poz=i; } } } apv[poz]=1; a=v[poz].first; b=v[poz].second; for(i=0;i<days.size();i++) if(a<=days[i] && days[i]<=b) apd[i]=1; zile-=maxi; ture++; } cout<<ture; }