RT
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n, m1, m2, ans, dpgj[100005], dpgn[100005], x, a[100005], b[100005];
struct DATA{
int st, ed;
}gj[100005], gn[100005];
bool cmp(DATA x,DATA y){
return x.st < y.st;
}
int main(){
cin>>n>>m1>>m2;
for(int i=1; i<=m1; i++)cin>>gn[i].st>>gn[i].ed;
sort(gn+1, gn+m1+1, cmp);
for(int i=1; i<=m2; i++)cin>>gj[i].st>>gj[i].ed;
sort(gj+1, gj+m2+1, cmp);
x=1;
dpgj[0]=dpgn[0]=0;
for(int i=1; i<=m1; i++){
for(int j=1; j<=x; j++){
if(gn[i].st>a[j]){
dpgn[j]++;
a[j]=gn[i].ed;
break;
}
if(j==x){
x++;
dpgn[x]++;
a[x]=gn[i].ed;
break;
}
}
}
x=1;
for(int i=1; i<=m2; i++){
for(int j=1; j<=x; j++){
if(gj[i].st>b[j]){
dpgj[j]++;
b[j]=gj[i].ed;
break;
}
if(j==x){
x++;
dpgj[x]++;
b[x]=gj[i].ed;
break;
}
}
}
for(int i=1; i<=n; i++){
dpgn[i]+=dpgn[i-1];
dpgj[i]+=dpgj[i-1];
}
for(int i=0; i<=n; i++){
ans=max(ans, dpgn[i]+dpgj[n-i]);
}
cout<<ans;
return 0;
}
//这样写到底能得多少分?可能>40吗