#include<cstdio>
#include<string>
#include<cstdlib>
#include<iostream>
#include<cmath>
#include<vector>
#include<cstring>
#include<queue>
#include<utility>
#include<stack>
#include<algorithm>
#include<cmath>
using namespace std;
#define PII pair<int,int>
int main()
{
//freopen("1.in","r",stdin);
//freopen("1.out","w",stdout);
int n,inn,outn;
cin>>n>>inn>>outn;
priority_queue< PII,vector<PII>,greater<PII> >ii,oo;
for(int i=0;i<inn;i++)
{
PII i1;
cin>>i1.first>>i1.second;
ii.push(i1);
}
for(int i=0;i<outn;i++)
{
PII i2;
cin>>i2.first>>i2.second;
oo.push(i2);
}
priority_queue< PII,vector<PII>,greater<PII> > pq1;
PII tt;
tt.first=0;
tt.second=1;
pq1.push(tt);
int inx[100000]={0},s1=1;
while(ii.size())
{
if(ii.top().first>pq1.top().first)
{
PII t1;
t1.first=ii.top().second;
t1.second=pq1.top().second;
pq1.pop();
pq1.push(t1);
inx[t1.second]++;
ii.pop();
}
else
{
s1++;
PII t2;
t2.first=ii.top().second;
t2.second=s1;
pq1.push(t2);
inx[t2.second]++;
ii.pop();
}
}
priority_queue< PII,vector<PII>,greater<PII> > pq2;
pq2.push(tt);
int outx[100000]={0},s2=1;
for(int i=0;i<outn;i++)
{
if(oo.top().first>pq2.top().first)
{
PII t1;
t1.first=oo.top().second;
t1.second=pq2.top().second;
pq2.pop();
pq2.push(t1);
outx[t1.second]++;
oo.pop();
}
else
{
s2++;
PII t2;
t2.first=oo.top().second;
t2.second=s2;
pq2.push(t2);
outx[t2.second]++;
oo.pop();
}
}
for(int i=1;i<=n;i++)
inx[i]+=inx[i-1];
for(int i=1;i<=n;i++)
outx[i]+=outx[i-1];
int maxx=-1;
for(int i=0;i<=n;i++)
if(inx[i]+outx[n-i]>maxx)
maxx=inx[i]+outx[n-i];
cout<<maxx;
//fclose(stdin);
//fclose(stdout);
return 0;
}
蒟蒻在线求教TAT