#include<bits/stdc++.h>
using namespace std;
#define int long long
int const l=1e6+10;
int gw[l],gn[l]//国外国内
,ans;
priority_queue<int,vector<int>,greater<int> > nul;//空位置
int n,m1,m2;
struct p{
int s,e,i;
int operator<(p b)const{
return e>b.e;
}
}p1[l],p2[l];
bool cmp(p a,p b){
return a.s<b.s;
}
priority_queue<p> q;//廊桥内
signed main(){
cin >> n >> m1 >> m2;
for(int i=1;i<=m1;i++)nul.push(i);
for(int i=1;i<=m1;i++)cin >> p1[i].s >> p1[i].e;
sort(p1+1,p1+m1+1,cmp);
for(int i=1;i<=m1;i++){
while((!q.empty())&&q.top().e<=p1[i].s){
nul.push( q.top().i );
q.pop();
}
p1[i].i=nul.top();
gn[p1[i].i]++;
nul.pop();
q.push(p1[i]);
}
while(!nul.empty())nul.pop();
while(!q.empty())q.pop();
for(int i=1;i<=m1;i++)nul.push(i);
for(int i=1;i<=m2;i++)cin >> p2[i].s >> p2[i].e;
sort(p2+1,p2+m1+1,cmp);
for(int i=1;i<=m2;i++){
while((!q.empty())&&q.top().e<=p2[i].s){
nul.push( q.top().i );
q.pop();
}
// cout << " " << nul.top() << " \n";
p2[i].i=nul.top();
gw[p2[i].i]++;
nul.pop();
q.push(p2[i]);
}
for(int i=1;i<=n;i++){
gn[i]+=gn[i-1];
gw[i]+=gw[i-1];
}
/* for(int i=1;i<=n;i++)cout << gn[i] << " ";
cout << endl;
for(int i=1;i<=n;i++)cout << gw[i] << " ";
*/
for(int i=0;i<=n;i++){
ans=max(gn[i]+gw[n-i],ans);
}
cout << ans;
return 0;
}
WA了5个,RE了1个