#include<iostream>
#include<vector>
#include<algorithm>
#include<queue>
#define INF doll(10000000,10000000)
using namespace std;
class doll{
public:
    int h,r;
    doll(int _h,int _r){
        h=_h;r=_r;
    }
    doll(){}
    bool operator<(const doll &d)const{
        return(h<d.h&&r<d.r);
    }
    bool operator==(const doll &d)const{
        return ((h<=d.h&&r>=d.r)||(h>=d.h&&r<=d.r));
    }

    bool operator>(const doll &d)const{
        return(h>d.h&&r>d.r);
    }
};
int main(){
    int n;
    while(cin>>n,n){
        queue<doll>N,M;
        for(int i=0;i<n;i++){
            int h,r;
            cin>>h>>r;
            N.push(doll(h,r));
        }
        int m;
        cin>>m;
        for(int i=0;i<m;i++){
            int h,r;
            cin>>h>>r;
            M.push(doll(h,r));
        }
        N.push(INF);M.push(INF);
        int cnt=0;
        while(true){
            if(N.front()<M.front())N.pop();
            else if(N.front()>M.front())M.pop();
            else{
                if(N.front()==INF)break;
                N.pop();M.pop();
            }
            cnt++;
        }
        cout<<cnt<<endl;
    }
    return 0;
}