#include <bits/stdc++.h>
using namespace std;
const int N = 200007, inf = 0x3f3f3f3f;
struct qu {
  int op, l, r;
};
qu Q[N];
int v[N];
int main() {
  ios::sync_with_stdio(false);
  int n, q, m;
  cin >> n >> q >> m;
  for (int i = 1; i <= n; ++i) {
    cin >> v[i];
  }
  for (int i = 0; i < q; ++i) {
    int a, b, c;
    cin >> a >> b >> c;
    Q[i] = {a, b, c};
  }
  for (int i = 0; i < m; ++i) {
    int x;
    cin >> x;
    for (int j = q - 1; j >= 0; --j) {
      qu que = Q[j];
      int l = que.l, r = que.r;
      if (que.op == 1 and x >= que.l and x <= que.r) {
        x = l + (x - l - 1 + (r - l + 1)) % (r - l + 1);
      } else if (que.op == 2 and x >= que.l and x <= que.r) {
        x = l + r - x;
      }
    }
    cout << v[x] << " ";
  }
  cout << endl;
}
