#include <bits/stdc++.h>
using namespace std;
long long mod = 1000000007LL;
long long base = 10000007;
long long large = 1000000000000000000LL;
int main() {
  int n, q, m;
  cin >> n >> q >> m;
  vector<int> a(n, 0);
  for (int i = 0; i < n; i++) cin >> a[i];
  vector<pair<pair<int, int>, int> > qu;
  for (int i = 0; i < q; i++) {
    int x, y, z;
    scanf("%d%d%d", &x, &y, &z);
    y--;
    z--;
    qu.push_back(pair<pair<int, int>, int>(pair<int, int>(y, z), x));
  }
  reverse(qu.begin(), qu.end());
  while (m--) {
    int x;
    cin >> x;
    x--;
    for (int i = 0; i < q; i++) {
      int l = qu[i].first.first;
      int r = qu[i].first.second;
      if (x >= l && x <= r) {
        if (qu[i].second == 2)
          x = r - (x - l);
        else {
          if (x > l)
            x--;
          else
            x = r;
        }
      }
    }
    cout << a[x] << " ";
  }
  return 0;
}
