#include <bits/stdc++.h>
using namespace std;
int f1[1010][1010];
int f2[1010];
int main() {
  memset((f1), (0), sizeof(f1)), memset((f2), (0), sizeof(f2));
  int n, m;
  scanf("%d %d", &n, &m);
  for (int _n(n), i(0); i < _n; i++) {
    int x, y;
    scanf("%d %d", &y, &x);
    f1[x][y]++;
    f2[x]++;
  }
  vector<int> r;
  int u = 0;
  for (int _n(m), i(0); i < _n; i++) {
    int x, y;
    scanf("%d %d", &y, &x);
    if (f1[x][y] > 0) {
      f1[x][y]--;
      f2[x]--;
      u++;
    } else
      r.push_back(x);
  }
  int v = 0;
  for (int _n(r.size()), i(0); i < _n; i++) {
    int x = r[i];
    if (f2[x] > 0) f2[x]--, v++;
  }
  cout << u + v << ' ' << u << endl;
  return 0;
}
