#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+5;
int n,m[2],cnt,num[2][maxn],ans;
pair<int,int>g[maxn];
priority_queue<pair<int,int> >q;
priority_queue<int>q1;
int main(){
cin>>n>>m[0]>>m[1];
for(int p=0;p<=1;p++){
cnt=0;
while(q.size())q.pop();
for(int i=1;i<=m[p];i++)
cin>>g[i].first>>g[i].second;
sort(g[p]+1,g[p]+1+m[p]);
for(int i=1;i<=m[p];i++){
while(q.size()&&-q.top().first<g[i].first){
q1.push(q.top().second);
q.pop();
}
if(q1.empty()){
cnt++;
q1.push(-cnt);
}
num[p][-q1.top()]++;
q.push(make_pair(-g[i].second,q1.top()));
q1.pop();
}
for(int i=1;i<=n;i++)
num[p][i]+=num[p][i-1];
}
for(int i=0;i<=n;i++)
ans=max(ans,num[0][i]+num[1][n-i]);
cout<<ans;
}