#include <bits/stdc++.h>
using namespace std;
const int inf = 111111111;
struct state {
  long long l, r;
  int mod;
};
state make_state(long long l, long long r, int mod) {
  state ret;
  ret.l = l;
  ret.r = r;
  ret.mod = mod;
  return ret;
}
int n;
map<long long, int> m;
vector<state> v;
int get_ans(long long poz) {
  if (m.count(poz)) {
    return m[poz];
  }
  int l = 0, r = v.size();
  while (r - l > 1) {
    int x = (l + r) / 2;
    if (v[x].l <= poz && poz <= v[x].r) {
      l = x;
      break;
    }
    if (poz < v[x].l) {
      r = x;
    } else {
      l = x;
    }
  }
  if ((poz - v[l].l + 1) % v[l].mod == 0) {
    return get_ans(v[l].mod);
  }
  return get_ans((poz - v[l].l + 1) % v[l].mod);
}
int main() {
  scanf("%d", &n);
  long long len = 0;
  for (int i = 0; i < n; ++i) {
    int t;
    scanf("%d", &t);
    if (t == 1) {
      int x;
      scanf("%d", &x);
      ++len;
      m[len] = x;
    } else {
      long long l, x;
      scanf("%I64d%I64d", &l, &x);
      v.push_back(make_state(len + 1, len + l * x, (int)l));
      len += l * x;
    }
  }
  scanf("%d", &n);
  for (int i = 0; i < n; ++i) {
    long long poz;
    scanf("%I64d", &poz);
    printf("%d ", get_ans(poz));
  }
  return 0;
}
