#include <bits/stdc++.h>
using namespace std;
const int MAXN = 2e5 + 5, mod = 1e9 + 7;
int tr[MAXN][3], t[MAXN];
int main() {
  int a, b, c, d, e, f, m, n, q;
  scanf("%d%d%d", &n, &q, &m);
  for (a = 1; a <= n; a++) scanf("%d", &t[a]);
  for (a = 1; a <= q; a++) scanf("%d%d%d", &tr[a][0], &tr[a][1], &tr[a][2]);
  while (m--) {
    scanf("%d", &a);
    for (b = q; b; b--)
      if (tr[b][1] <= a && tr[b][2] >= a) {
        if (tr[b][0] == 1) {
          if (a == tr[b][1])
            a = tr[b][2];
          else
            a--;
        } else
          a = tr[b][2] - (a - tr[b][1]);
      }
    printf("%d ", t[a]);
  }
  return 0;
}
