#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>
#include <algorithm>
using namespace std;
struct node {
int x, v;
};
inline int read() {
int x = 0, f = 1;
char c = getchar();
while (c < '0' || c > '9') c = getchar();
while (c >= '0' && c <= '9') {
x = (x << 1) + (x << 3) + (c ^ 48);
c = getchar();
}
return x * f;
}
bool cmp(node a, node b) {
if (a.v != b.v) return a.v < b.v;
return a.x < b.x;
}
node a[8005];
int x;
int main() {
int n, q;
n = read();
q = read();
for (int i = 1; i <= n; i++) a[i].v = read(), a[i].x = i;
sort(a + 1, a + 1 + n, cmp);
for (int i = 1; i <= q; i++) {
int c;
c = read();
if (c == 1) {
int v;
x = read();
v = read();
for (int i = 1; i <= n; i++) {
if (a[i].x == x) {
a[i].v = v;
break;
}
}
sort(a + 1, a + 1 + n, cmp);
}
else if (c == 2) {
x = read();
for (int i = 1; i <= n; i++) {
if (a[i].x == x) {
printf("%d\n", i);
break;
}
}
}
}
return 0;
}