#include <bits/stdc++.h>
using namespace std;
const int MX = 1e6 + 5;
int seg[16 * MX];
int lazy[16 * MX];
int n, m, q;
pair<int, int> a[MX];
pair<int, int> b[MX];
int aa[MX];
int bb[MX];
int nn;
int g(int lev) {
  seg[lev] += lazy[lev];
  lazy[lev * 2] += lazy[lev];
  lazy[lev * 2 + 1] += lazy[lev];
  lazy[lev] = 0;
  if (seg[lev] > 0) {
    if (lev >= nn) return lev - nn + 1;
    int ret = g(lev * 2 + 1);
    if (ret > 0)
      return ret;
    else
      return g(lev * 2);
  } else {
    return -1;
  }
}
void update(int x, int y, int k, int lef, int rig, int lev) {
  seg[lev] += lazy[lev];
  lazy[lev * 2] += lazy[lev];
  lazy[lev * 2 + 1] += lazy[lev];
  lazy[lev] = 0;
  if (x > y) return;
  if (x <= lef && rig <= y) {
    seg[lev] += k;
    lazy[lev * 2] += k;
    lazy[lev * 2 + 1] += k;
    return;
  }
  int mid = (lef + rig) / 2;
  if (x <= mid) update(x, y, k, lef, mid, lev * 2);
  if (y > mid) update(x, y, k, mid + 1, rig, lev * 2 + 1);
  seg[lev] =
      max(seg[lev * 2] + lazy[lev * 2], seg[lev * 2 + 1] + lazy[lev * 2 + 1]);
}
int main() {
  int i, j;
  cin.tie(0);
  cout.tie(0);
  ios_base::sync_with_stdio(0);
  cin >> n >> m;
  for (i = 1; i <= n; i++) cin >> a[i].first, a[i].second = i;
  for (i = 1; i <= m; i++) cin >> b[i].first, b[i].second = i;
  for (nn = 1; nn < 1e6; nn *= 2)
    ;
  cin >> q;
  sort(a + 1, a + n + 1);
  sort(b + 1, b + m + 1);
  for (i = 1; i <= n; i++) {
    aa[a[i].second] = i;
    for (j = a[i - 1].first + 1; j <= a[i].first; j++)
      seg[nn + j - 1] = n - i + 1;
  }
  for (i = 1; i <= m; i++) {
    bb[b[i].second] = i;
    for (j = b[i - 1].first + 1; j <= b[i].first; j++)
      seg[nn + j - 1] -= m - i + 1;
  }
  for (i = nn - 1; i >= 1; i--) seg[i] = max(seg[i * 2], seg[i * 2 + 1]);
  for (i = 1; i <= q; i++) {
    int x, y, z;
    cin >> x >> y >> z;
    if (x == 1) {
      int k = aa[y];
      if (a[k].first < z) {
        update(a[k].first + 1, z, 1, 1, nn, 1);
      } else {
        update(z + 1, a[k].first, -1, 1, nn, 1);
      }
      a[k].first = z;
    } else {
      int k = bb[y];
      if (b[k].first < z) {
        update(b[k].first + 1, z, -1, 1, nn, 1);
      } else
        update(z + 1, b[k].first, 1, 1, nn, 1);
      b[k].first = z;
    }
    cout << g(1) << "\n";
  }
  return 0;
}
