#include #include #include #include #include using namespace std; const int MAXN=2505; int linker[MAXN]; bool used[MAXN]; vectormap[MAXN]; int uN; bool dfs(int u) { for(int i=0;ip1[MAXN]; pairp2[MAXN]; int main() { int n,m; int x,y; while(scanf("%d%d",&n,&m)==2) { if(n==0 &&m==0)break; for(int i = 0;i < n;i++) { scanf("%d%d",&x,&y); p1[i]= make_pair(x,y); } for(int i = 0;i < m;i++) { scanf("%d%d",&x,&y); p2[i]= make_pair(x,y); } uN = n; for(int i = 0;i < n;i++) map[i].clear(); for(int i = 0;i < n;i++) { for(int j = 0;j < m;j++) { int x1 = p1[i].first; int y1 = p1[i].second; int x2 = p2[j].first; int y2 = p2[j].second; if( (x1==x2 && y1==y2) ||(x1==x2 && y1==y2+1) ||(x1+1==x2 && y1==y2) ||(x1+1==x2 && y1==y2+1) ) map[i].push_back(j); } } int ans = n+m-hungary(); printf("%d\n",ans); } return 0; }