#include <bits/stdc++.h>
using namespace std;
int n, q, k, x;
int a[200200];
int b[200200];
int c[200200];
int d[200200];
vector<int> v[200200];
pair<int, int> t[200200 * 4];
void build(int v, int l, int r) {
  if (l == r) {
    t[v] = make_pair(a[l], l);
    return;
  }
  int m = (l + r) >> 1;
  build(v << 1, l, m);
  build(v << 1 | 1, m + 1, r);
  if (t[v << 1].first > t[v << 1 | 1].first)
    t[v] = t[v << 1];
  else
    t[v] = t[v << 1 | 1];
}
pair<int, int> get(int v, int l, int r, int L, int R) {
  if (L > R) {
    return make_pair(0, 0);
  }
  if (l == L && r == R) {
    return t[v];
  }
  int m = (l + r) >> 1;
  if (R <= m)
    return get(v << 1, l, m, L, R);
  else if (L > m)
    return get(v << 1 | 1, m + 1, r, L, R);
  else {
    pair<int, int> x = get(v << 1, l, m, L, m);
    pair<int, int> y = get(v << 1 | 1, m + 1, r, m + 1, R);
    if (x.first > y.first)
      return x;
    else
      return y;
  }
}
void update(int v, int l, int r, int pos, int val) {
  if (l == r) {
    t[v].first = val;
    return;
  }
  int m = (l + r) >> 1;
  if (pos <= m)
    update(v << 1, l, m, pos, val);
  else
    update(v << 1 | 1, m + 1, r, pos, val);
  if (t[v << 1].first > t[v << 1 | 1].first)
    t[v] = t[v << 1];
  else
    t[v] = t[v << 1 | 1];
}
int main() {
  scanf("%d", &n);
  for (int i = 1, x, y; i <= n; i++) {
    scanf("%d %d", &x, &y);
    a[x] = y;
    v[x].push_back(y);
  }
  build(1, 1, n);
  scanf("%d", &q);
  while (q--) {
    scanf("%d", &k);
    for (int i = 1; i <= k; i++) {
      scanf("%d", c + i);
      d[i] = a[c[i]];
      a[c[i]] = 0;
      update(1, 1, n, c[i], 0);
    }
    pair<int, int> p = t[1];
    if (p.first == 0) {
      puts("0 0");
    } else {
      printf("%d ", p.second);
      int in = p.second;
      int mx =
          max(get(1, 1, n, 1, in - 1).first, get(1, 1, n, in + 1, n).first);
      printf(
          "%d\n",
          v[p.second][upper_bound(v[p.second].begin(), v[p.second].end(), mx) -
                      v[p.second].begin()]);
    }
    for (int i = 1; i <= k; i++) {
      a[c[i]] = d[i];
      update(1, 1, n, c[i], d[i]);
    }
  }
  return 0;
}
