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