#include <bits/stdc++.h>
using namespace std;
int n, m, q, a[201000], p;
struct msns {
  int f, l, r;
  void i() { scanf("%d%d%d", &f, &l, &r); }
  void w() {
    if (p < l || p > r) return;
    if (f == 1) {
      if (p == l)
        p = r;
      else
        p--;
    } else
      p = l + r - p;
  }
} s[201000];
void work() {
  int i, j, k;
  scanf("%d", &p);
  for (i = m; i; i--) s[i].w();
  printf("%d ", a[p]);
}
int main() {
  int i, j, k;
  scanf("%d%d%d", &n, &m, &q);
  for (i = 1; i <= n; i++) scanf("%d", &a[i]);
  for (i = 1; i <= m; i++) s[i].i();
  while (q--) work();
  return 0;
}
