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

int main(){
  int n,m;
  int h[200],r[200];

  while(1){
    cin >> n;
    if(!n)break;

    for(int i=0;i<n;i++)cin >> h[i] >> r[i];

    cin >> m;
    for(int i=n;i<n+m;i++)cin >> h[i] >> r[i];

    for(int i=0;i<n+m;i++)
      for(int j=i+1;j<n+m;j++)
	if(h[i]<h[j] || (h[i]==h[j] && r[i]<r[j])){
	  swap(h[i],h[j]);
	  swap(r[i],r[j]);
	}
    
    int ans1 = 1;
    int prvh = h[0],prvr=r[0];
    for(int i=1;i<n+m;i++)
      if(prvh>h[i] && prvr>r[i]){
	ans1++;
	prvh = h[i];
	prvr = r[i];
      }

    for(int i=0;i<n+m;i++)
      for(int j=i+1;j<n+m;j++)
	if(r[i]<r[j] || (r[i]==r[j] && h[i]<h[j])){
	  swap(h[i],h[j]);
	  swap(r[i],r[j]);
	}
    
    int ans2 = 1;
    prvh = h[0],prvr=r[0];
    for(int i=1;i<n+m;i++)
      if(prvh>h[i] && prvr>r[i]){
	ans2++;
	prvh = h[i];
	prvr = r[i];
      }



    cout << max(ans1,ans2) << endl;
  }
}