#include <iostream>
#include <vector>
#include <algorithm>
#include <utility>
using namespace std;

typedef pair<int,int> pii;
int dptab[128][1024] = {0};

int main() {
	int n, m;
	while(cin >> n, n) {
		vector<pii> v;
		for(int i = 0; i < n; i++) {
			pii tmp;
			cin >> tmp.first >> tmp.second;
			v.push_back(tmp);
		}
		cin >> m;
		for(int i = 0; i < m; i++) {
			pii tmp;
			cin >> tmp.first >> tmp.second;
			v.push_back(tmp);
		}
		sort(v.begin(), v.end());

		for(int i = 0; i < 128; i++)
			for(int j = 0; j < 1024; j++)
				dptab[i][j] = 0;

		for(int i = 0; i < v.size(); i++) {
			for(int j = 0; j < 1024; j++) {
				if(i > 0 && v[i].first == v[i - 1].first) {
					dptab[i + 1][j]
						= max(dptab[i][j], v[i].second < j ? dptab[i - 1][v[i].second] + 1 : 0);
				}
				else {
					dptab[i + 1][j]
						= max(dptab[i][j], v[i].second < j ? dptab[i][v[i].second] + 1 : 0);
				}
			}
		}
		cout << dptab[n + m][1000] << endl;
	}
}