#include <bits/stdc++.h>
using namespace std;
const int N = 4e6 + 9, MOD = 1e9 + 7;
pair<int, int> sum[N];
int pp[N], a[N], b[N];
void push(int v) {
  sum[v * 2 + 1].first += pp[v];
  sum[v * 2 + 2].first += pp[v];
  pp[v * 2 + 1] += pp[v], pp[v * 2 + 2] += pp[v];
  pp[v] = 0;
}
void update(int v, int l, int r, int tl, int tr, int x) {
  if (l >= tr || tl >= r) return;
  if (tl <= l && r <= tr) {
    sum[v].first += x;
    sum[v].second = tr - 1;
    pp[v] += x;
  } else {
    int m = (r + l) / 2;
    push(v);
    update(v * 2 + 1, l, m, tl, tr, x);
    update(v * 2 + 2, m, r, tl, tr, x);
    if (sum[v * 2 + 1].first < sum[v * 2 + 2].first) {
      sum[v] = sum[v * 2 + 1];
    } else
      sum[v] = sum[v * 2 + 2];
  }
}
int ask(int v, int l, int r) {
  if (r - l == 1)
    return l;
  else {
    push(v);
    if (sum[v * 2 + 2].first < 0)
      return ask(v * 2 + 2, (r + l) / 2, r);
    else
      return ask(v * 2 + 1, l, (r + l) / 2);
  }
}
signed main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  int n, m;
  cin >> n >> m;
  for (int i = 0; i < n; i++) {
    cin >> a[i];
    update(0, 0, 1e6 + 3, 1, a[i] + 1, -1);
  }
  for (int j = 0; j < m; j++) {
    cin >> b[j];
    update(0, 0, 1e6 + 3, 1, b[j] + 1, 1);
  }
  int q;
  cin >> q;
  for (int i = 0; i < q; i++) {
    int k, x, r;
    cin >> k >> r >> x;
    r--;
    if (k == 1) {
      update(0, 0, 1e6 + 3, 1, a[r] + 1, 1);
      a[r] = x;
      update(0, 0, 1e6 + 3, 1, a[r] + 1, -1);
    } else {
      update(0, 0, 1e6 + 3, 1, b[r] + 1, -1);
      b[r] = x;
      update(0, 0, 1e6 + 3, 1, b[r] + 1, 1);
    }
    if (sum[0].first >= 0) {
      cout << -1 << "\n";
    } else {
      cout << ask(0, 0, 1e6 + 3) << "\n";
    }
  }
}
