rt:
//made by forforever10 2021/10/23 2021csp rp++
//O(mn)算法 40pts
#include<bits/stdc++.h>
using namespace std;
const int maxn=100050;
#define ll long long
ll n,m1,m2;
struct node{
ll a,b;
}gn[maxn],gw[maxn];
ll qj1[maxn][2],qj2[maxn][2];
ll ans;
ll cnt1,cnt2;
bool cmp(node w,node k){
return w.a<k.a;
}
int main()
{
//freopen("airport.in","r",stdin);
//freopen("airport.out","w",stdout);
scanf("%lld%lld%lld",&n,&m1,&m2);
for(ll i=1;i<=m1;i++) scanf("%lld%lld",&gn[i].a,&gn[i].b);
for(ll i=1;i<=m2;i++) scanf("%lld%lld",&gw[i].a,&gw[i].b);
sort(gn+1,gn+m1+1,cmp);
sort(gw+1,gw+m2+1,cmp);
/*for(ll i=1;i<=m1;i++){
printf("%lld %lld\n",gn[i].a,gn[i].b);
}*/
for(ll i=1;i<=m1;i++){
for(ll j=1;j<=n;j++){
if(gn[i].a>qj1[j][2]){
qj1[j][2]=gn[i].b;
qj1[j][1]++;
//printf("*%lld %lld*",qj1[j][1],qj1[j][2]);
break;
}
}
}
for(ll i=1;i<=m2;i++){
for(ll j=1;j<=n;j++){
if(gw[i].a>qj2[j][2]){
qj2[j][2]=gw[i].b;
qj2[j][1]++;
break;
}
}
}
for(ll i=1;i<=n;i++) qj1[i][1]+=qj1[i-1][1];
for(ll i=1;i<=n;i++) qj2[i][1]+=qj2[i-1][1];
for(ll i=0;i<=n;i++){
ans=max(qj1[i][1]+qj2[n-i][1],ans);
}
printf("%lld",ans);
return 0;
}