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

int h[201],r[201];
int num[201];


void LIS(int n,int m){

  int max;

  h[0]=0;
  r[0]=0;
  num[0]=0;
  
  for(int i=1 ; i <= m+n ; i++){
    max=0;
    for(int j=0 ; j < i ; j++){
      if(r[j] < r[i] && h[j] < h[i] && max < num[j])max=num[j];
    }
    num[i]=max+1;
  }
  
  /*cout <<endl;
  for(int i=0 ; i <= m+n ; i++){
    cout <<num[i]<<endl;
  }
  */

  max=num[0];
  for(int i=0 ; i <= n+m ; i++){
    if(max < num[i])max=num[i];
  }

  cout <<max<<endl;
	
  
}
int main(){

  int n,m;

  while(1){
    
    cin >>n;
    if(n == 0)break;
    
    for(int i=1 ; i <= n ; i++){
      cin >>h[i]>>r[i];
    }
    
    cin >>m;
    for(int i=n+1 ; i <= m+n ; i++){
      cin >>h[i]>>r[i];
    }
    
    for(int i=n+m ; i > 1 ; i--){
      for(int j=1 ; j < i ; j++){
	if(h[j] > h[j+1]){
	  swap(h[j],h[j+1]);
	  swap(r[j],r[j+1]);
	}else if(h[j] == h[j+1] && r[j] > r[j+1]){
	  swap(r[j],r[j+1]);
	}
      }
    }
    
    //cout <<endl;
    //for(int i=1 ; i <= n+m ; i++){
    //  cout <<h[i]<<" "<<r[i]<<endl;
    //}
    
    LIS(n,m);

  }
  return 0;
}