#include <iostream>
#include <list>
#include <algorithm>
#define INF 10e6
#define F first
#define S second
using namespace std;

typedef pair<int,int> P;

int main(void){
	P dolls[200];
	P dolls1[200];
	int dp[200];
	int dp1[200];
	int n,m;
	while(cin >> n,n){
		for(int i=0;i<n;i++)
			cin >> dolls[i].F >> dolls[i].S;
		cin >> m;
		for(int i=n;i<n+m;i++)
			cin >> dolls[i].F >> dolls[i].S;
		for(int i=0;i<n+m;i++)
			dolls1[i].F=dolls[i].S,dolls1[i].S=dolls[i].F;
		sort(dolls,dolls+n+m);
		sort(dolls1,dolls1+n+m);
		int cx,cy;
		fill(dp,dp+n+m,INF);
		fill(dp1,dp1+n+m,INF);
		for(int i=0;i<n+m;i++){
			*lower_bound(dp,dp+n+m,dolls[i].S)=dolls[i].S;
			*lower_bound(dp1,dp1+n+m,dolls1[i].S)=dolls1[i].S;
		}
		cx=lower_bound(dp,dp+n+m,INF)-dp;
		cy=lower_bound(dp1,dp1+n+m,INF)-dp1;
		cout << max(cx,cy) << endl;
	}
	return 0;
}