#include<iostream>
#include<cstring>
#include<cstdlib>
using namespace std;
#define MAXR 1000

int dp[1010][1010];
int doll[1010][1010];

int main()
{
    int n,m;
    while(cin >>n)
    {
        if(n==0)break;
        memset(dp,0,sizeof(dp));
        memset(doll,0,sizeof(doll));
        int h,r;
        for(int i=0;i<n;i++)
        {
            cin>>h>>r;
            doll[h][r]=1;
        }
        cin >> m;
        for(int i=0;i<m;i++)
        {
            cin>>h>>r;
            doll[h][r]=1;
        }

        for(int i=1;i<MAXR;i++)
        {
            for(int j=1;j<MAXR;j++)
            {
                int temp;
                if(doll[i][j]==1)
                {
                    temp = max(dp[i-1][j],dp[i][j-1]);
                    dp[i][j] = max(1+dp[i-1][j-1],temp);
                }
                else
                    dp[i][j] = max(dp[i-1][j],dp[i][j-1]);
            }
        }
        cout << dp[999][999] << endl;
    }
    return 0;
}