#include <bits/stdc++.h>
using namespace std;
struct aman {
  long long a1;
  long long b1;
  long long c1;
};
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long n, q, m;
  cin >> n >> q >> m;
  long long a[n + 1];
  for (long long i = 1; i <= n; i++) {
    cin >> a[i];
  }
  vector<aman> vect(q);
  for (long long i = 0; i < q; i++) {
    cin >> vect[i].a1 >> vect[i].b1 >> vect[i].c1;
  }
  long long b[m];
  for (long long i = 0; i < m; i++) {
    cin >> b[i];
  }
  long long dp[n + 1];
  for (long long i = 1; i <= n; i++) {
    dp[i] = i;
  }
  reverse(vect.begin(), vect.end());
  for (long long j = 0; j < m; j++) {
    long long val = b[j];
    for (long long i = 0; i < q; i++) {
      if (vect[i].a1 == 1 and vect[i].b1 <= val and vect[i].c1 >= val) {
        if (val == vect[i].b1) {
          val = vect[i].c1;
        } else {
          val--;
        }
      } else if (vect[i].a1 == 2 and vect[i].b1 <= val and vect[i].c1 >= val) {
        val = vect[i].c1 - (val - vect[i].b1);
      }
    }
    cout << a[val] << " ";
  }
  return 0;
}
