#include <bits/stdc++.h>
using namespace std;
const int MX = 2e5 + 5;
vector<int> v(MX);
struct Q {
  int t, l, r;
};
vector<Q> qs(MX);
int n, q, m, p;
int main() {
  cin >> n >> q >> m;
  for (int i = 1; i <= n; i++) cin >> v[i];
  for (int i = 1; i <= q; i++) cin >> qs[i].t >> qs[i].l >> qs[i].r;
  while (m--) {
    cin >> p;
    for (int i = q; i > 0; i--) {
      if (p < qs[i].l || p > qs[i].r) continue;
      if (qs[i].t == 1) {
        p--;
        if (p < qs[i].l) p = qs[i].r;
      } else
        p = qs[i].r - (p - qs[i].l);
    }
    cout << v[p] << " ";
  }
  return 0;
}
