rt
//by 0x0F(Himx)
//TYOI AK ME!
#include<bits/stdc++.h>
#define int long long
using namespace std;
struct Node{
int l,r;
}a[114514],b[114514];
int sum1[114514],sum2[114514];
struct Line{
int time,val;
bool operator<(const Line &r)const{
return time<r.time;
}
}lin1[114514],lin2[114514];
signed main(){
int n,m1,m2;
cin>>n>>m1>>m2;
for(int i=1;i<=m1;i++)cin>>a[i].l>>a[i].r;
for(int i=1;i<=m2;i++)cin>>b[i].l>>b[i].r;
int ans=-114514;
int l1=0,l2=0;
for(int i=1;i<=m1;i++){
lin1[++l1].time=a[i].l,lin1[l1].val=1;
lin1[++l1].time=a[i].r,lin1[l1].val=-1;
}
for(int i=1;i<=m2;i++){
lin2[++l2].time=b[i].l,lin2[l2].val=1;
lin2[++l2].time=b[i].r,lin2[l2].val=-1;
}
sort(lin1+1,lin1+l1+1);
sort(lin2+1,lin2+l2+1);
int used1=0,used2=0;
for(int i=1;i<=l1;i++){
if(lin1[i].val==1)sum1[++used1]++;
else --used1;
}
for(int i=1;i<=l2;i++){
if(lin2[i].val==1)sum2[++used2]++;
else --used2;
}
/*start
for(int i=0;i<=n;i++)cout<<sum1[i]<<" ";
cout<<endl;
for(int i=0;i<=n;i++)cout<<sum2[i]<<" ";
cout<<endl;
end*/
for(int i=1;i<=n;i++)sum1[i]+=sum1[i-1];
for(int i=1;i<=n;i++)sum2[i]+=sum2[i-1];
for(int i=0;i<=n;i++)ans=max(ans,sum1[i]+sum2[n-i]);
cout<<ans<<endl;
return 0;
}