#include <bits/stdc++.h>
using namespace std;
struct node {
  int t, l, r;
};
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int n, q, m, no;
  cin >> n >> q >> m;
  int a[n + 1];
  node que[q];
  for (int i = 1; i <= n; ++i) cin >> a[i];
  for (int i = 0; i < q; ++i) cin >> que[i].t >> que[i].l >> que[i].r;
  for (int i = 1; i <= m; ++i) {
    cin >> no;
    for (int j = q - 1; j >= 0; --j) {
      if (que[j].l > no || que[j].r < no) continue;
      if (que[j].t == 1) {
        if (no == que[j].l)
          no = que[j].r;
        else
          --no;
      } else
        no = que[j].l + que[j].r - no;
    }
    cout << a[no] << " ";
  }
}
