#include<bits/stdc++.h>
using namespace std;
const int N=1e5+4;
int n, m1, m2, ed1[N], ed2[N], sum1[N], sum2[N];
struct node{
int a, b;
}a[N], b[N];
bool cmp(node x, node y)
{
return x.a<y.a;
}
int main()
{
cin>>n>>m1>>m2;
for(int i=1; i<=m1; i++)
{
cin>>a[i].a>>a[i].b;
}
for(int i=1; i<=m2; i++)
{
cin>>b[i].a>>b[i].b;
}
sort(a+1, a+m1+1, cmp);
sort(b+1, b+m2+1, cmp);
for(int i=1; i<=m1; i++)
{
for(int j=1; j<=n; j++)
{
if(ed1[j]<a[i].a)
{
ed1[j]=a[i].b;
sum1[j]++;
break;
}
}
}
for(int i=1; i<=m2; i++)
{
for(int j=1; j<=n; j++)
{
if(ed2[j]<b[i].a)
{
ed2[j]=b[i].b;
sum2[j]++;
break;
}
}
}
for(int i=1; i<=n; i++)
{
sum1[i]+=sum1[i-1];
sum2[i]+=sum2[i-1];
}
int maxi=-1e9;
for(int i=1; i<=n; i++)
{
maxi=max(maxi, sum1[i]+sum2[n-i]);
}
cout<<maxi;
return 0;
}