#include <bits/stdc++.h>
using namespace std;
const long long inff = 0x3f3f3f3f3f3f3f3f;
int n, q, m, a[200008], x, y, z, b;
struct as {
  int l, r, v;
} s[200008];
int main() {
  cin.tie(0);
  cout.tie(0);
  cin >> n >> q >> m;
  for (int i(1); i <= (n); ++i) scanf("%d", &a[i]);
  for (int i(1); i <= (q); ++i)
    scanf("%d", &s[i].v), scanf("%d", &s[i].l), scanf("%d", &s[i].r);
  for (int j(1); j <= (m); ++j) {
    scanf("%d", &b);
    for (int i(q); i >= (1); --i) {
      if (b >= s[i].l && b <= s[i].r) {
        if (s[i].v == 1) {
          b--;
          if (b < s[i].l) b = s[i].r;
        } else
          b = s[i].l + s[i].r - b;
      }
    }
    cout << a[b] << " ";
  }
  return 0;
}
