#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<fstream>
#include<cstdio>
using namespace std;
const int N=100010;
int n,m1,m2,n1,n2;
struct xx
{
int a,b;
int t;
}x[N],y[N],d[N];
bool cmp(xx t1,xx t2)
{
return t1.a<t2.a;
}
int check1(int k)
{
if(k==0) return 0;
int sum=k;
for(int i=1;i<=m1;i++)
{
if(i<=k) d[i]=x[i];
else
{
int minn=999999,u;
for(int j=1;j<=k;j++)
{
if(d[j].b<minn)
{
minn=d[j].b;
u=j;
}
}
if(x[i].a>d[u].b)
{
sum++;
d[u]=x[i];
}
}
}
return sum;
}
int check2(int k)
{
if(k==0) return 0;
int sum=k;
for(int i=1;i<=m2;i++)
{
if(i<=k) d[i]=y[i];
else
{
int minn=999999,u;
for(int j=1;j<=k;j++)
{
if(d[j].b<minn)
{
minn=d[j].b;
u=j;
}
}
if(y[i].a>d[u].b)
{
sum++;
d[u]=y[i];
}
}
}
return sum;
}
int main()
{
cin>>n>>m1>>m2;
for(int i=1;i<=m1;i++)
{
scanf("%d%d",&x[i].a,&x[i].b);
x[i].t=x[i].b-x[i].a;
}
for(int i=1;i<=m2;i++)
{
scanf("%d%d",&y[i].a,&y[i].b);
y[i].t=y[i].b-y[i].a;
}
sort(x+1,x+m1+1,cmp);
sort(y+1,y+m2+1,cmp);
int ans=0;
for(int i=1;i<=min(n,m1);i++)
{
n1=check1(i);
n2=check2(n-i);
if(n1+n2>ans) ans=n1+n2;
}
cout<<ans;
return 0;
}