#include <bits/stdc++.h>
using namespace std;
const long long mod = 1e9 + 7;
const int MX = 4e5 + 9;
long long POW(long long x, long long y) {
  if (y == 1) return x;
  if (y == 0) return 1;
  long long ans = POW(x, y / 2);
  ans *= ans;
  if (y % 2 == 0) return ans;
  return ans * x;
}
int n, q, m, a[MX], t[MX], l[MX], r[MX], b[MX];
int main() {
  cin >> n >> q >> m;
  for (int i = 0; i < n; i++) {
    scanf("%d", &a[i]);
  }
  for (int i = 0; i < q; i++) {
    scanf("%d%d%d", &t[i], &l[i], &r[i]);
    r[i]--;
    l[i]--;
  }
  for (int i = 0; i < m; i++) {
    scanf("%d", &b[i]);
    b[i]--;
  }
  for (int i = 0; i < m; i++) {
    int h = b[i];
    for (int j = q - 1; j >= 0; j--) {
      if (t[j] == 2) {
        if (h >= l[j] && h <= r[j]) h = r[j] + l[j] - h;
      }
      if (t[j] == 1) {
        if (h >= l[j] && h <= r[j]) {
          if (h == l[j])
            h = r[j];
          else
            h--;
        }
      }
    }
    cout << a[h] << " ";
  }
}
