1 1 1
1000000000
2 1
 20 2 15
12698951 55128070 116962690 156763505 188535242 194018601 269939893 428710623 442819431 483000923 516768937 552903993 633087286 656092270 671535141 714291344 717660646 846508634 879748146 937368929
2 7
1 2
2 4
1 19
1 12
1 5
2 18
2 11
1 16
2 1
2 3
2 19
1 17
2 9
2 6
 6 3 10
62417580 78150524 410053501 582708235 630200761 760672946
2 2
1 5
1 2
1 4
2 4
2 1
2 1
1 6
2 5
2 6

NO
 NO
NO
NO
NO
NO
NO
YES
NO
NO
 NO
YES
NO
NO
YES
YES

#include <bits/stdc++.h>
int compare(const void* a, const void* b) { return (*(int*)b - *(int*)a); }
int main() {
  int n, k, q;
  scanf("%d %d %d", &n, &k, &q);
  int array[n];
  int i;
  for (i = 0; i < n; i++) {
    scanf("%d", &array[i]);
  }
  int j;
  int dis[k];
  for (i = 0; i < k; i++) {
    dis[i] = -1;
  }
  int t1, t2;
  for (j = 0; j < q; j++) {
    scanf("%d %d", &t1, &t2);
    if (t1 == 1) {
      int l;
      l = 0;
      while (dis[l] != -1 && l < k && array[dis[l]] > array[t2 - 1]) {
        l++;
      }
      printf("l is %d\n", l);
      int tempv = t2 - 1;
      int tempvq;
      while (l < k) {
        tempvq = dis[l];
        dis[l] = tempv;
        tempv = tempvq;
        l++;
      }
      int as;
      for (as = 0; as < k; as++) {
        printf("%d ", dis[as]);
      }
      printf("\n");
    } else if (t1 == 2) {
      int qw;
      int f = 0;
      for (qw = 0; qw < k; qw++) {
        if (dis[qw] == t2 - 1) {
          f = 1;
          break;
        }
      }
      if (f == 1) {
        printf("YES\n");
      } else {
        printf("NO\n");
      }
    }
  }
  return 0;
}
