#include <bits/stdc++.h>
using namespace std;
struct xxx {
  long long value, idx;
};
bool cmp(xxx a, xxx b) { return a.idx < b.idx; }
int main() {
  long long n, m, i, j, k, a, b, c;
  cin >> n;
  xxx chem[n];
  for (i = 0; i < n; i++) {
    cin >> chem[i].idx >> chem[i].value;
  }
  cin >> m;
  xxx top[m];
  for (i = 0; i < m; i++) {
    cin >> top[i].idx >> top[i].value;
  }
  sort(chem, chem + n, cmp);
  sort(top, top + m, cmp);
  j = 0;
  long long ans = 0, flag;
  for (i = 0; i < n; i++) {
    flag = 0;
    for (; j < m; j++) {
      if (top[j].idx > chem[i].idx) {
        ans += chem[i].value;
        flag = 1;
        j = (j - 2 > 0) ? j - 2 : 0;
        break;
      }
      if (chem[i].idx == top[j].idx) {
        ans += (chem[i].value > top[j].value) ? chem[i].value : top[j].value;
        flag = 1;
        top[j].value = 0;
        break;
      }
    }
    if (flag == 0) {
      ans += chem[i].value;
    }
  }
  for (i = 0; i < m; i++) {
    ans += top[i].value;
  }
  cout << ans;
}
