#include <bits/stdc++.h>
using namespace std;
vector<int> g[200005];
struct cmp {
  bool operator()(int a, int b) const { return g[a].back() > g[b].back(); }
};
set<int, cmp> w;
int n;
int main() {
  scanf("%d", &n);
  int l, r;
  for (int i = 0; i < n; i++) {
    scanf("%d%d", &l, &r);
    l--;
    g[l].push_back(r);
  }
  for (int i = 0; i < n; i++)
    if (g[i].size()) w.insert(i);
  int q;
  scanf("%d", &q);
  for (int i = 0; i < q; i++) {
    int k;
    scanf("%d", &k);
    vector<int> p2(k);
    for (int j = 0; j < k; j++) scanf("%d", &p2[j]);
    for (int j = 0; j < k; j++) p2[j]--;
    for (int j = 0; j < k; j++)
      if (g[p2[j]].size()) w.erase(p2[j]);
    if (!w.size())
      printf("%d %d\n", 0, 0);
    else if (w.size() == 1)
      printf("%d %d\n", *w.begin() + 1, *g[*w.begin()].begin());
    else {
      auto it = w.begin();
      it++;
      auto res = lower_bound(g[*w.begin()].begin(), g[*w.begin()].end(),
                             g[*it].back());
      printf("%d %d\n", *w.begin() + 1, *res);
    }
    for (int j = 0; j < k; j++)
      if (g[p2[j]].size()) w.insert(p2[j]);
  }
}
