#include<bits/stdc++.h>
using namespace std;
#define int long long
#define root t[0].ch[1]
#define inf 0x3f3f3f3f
inline int read()
{
register int x=0,t=1;
register char ch=getchar();
while((ch<'0'||ch>'9')&&ch!='-')ch=getchar();
if(ch=='-'){t=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}
return x*t;
}
struct Splay
{
int p,k,ch[2],cnt,size;
}t[100001];
int tot;
inline void get_size(int x)
{
t[x].size=t[t[x].ch[0]].size+t[t[x].ch[1]].size+t[x].cnt;
}
inline int check(int x)
{
return x==t[t[x].p].ch[0]?0:1;
}
inline void change(register int x,register int father,register int f)
{
t[x].p=father;
t[father].ch[f]=x;
}
inline void rotate(register int x)
{
register int y=t[x].p,z=t[t[x].p].p;
register int yson=check(x),zson=check(y);
change(t[x].ch[yson^1],y,yson);
change(x,z,zson);
change(y,x,yson^1);
get_size(y);
get_size(x);
}
inline void splay(register int x,register int to)
{
to=t[to].p;
while(t[x].p!=to)
{
register int y=t[x].p;
if(t[y].p==to)rotate(x);
else
if(check(x)==check(y))
rotate(y),rotate(x);
else
rotate(x),rotate(x);
}
return;
}
inline int create_a_new_point(register int x,register int father)
{
t[++tot].k=x;
t[tot].p=father;
t[tot].size=t[tot].cnt=1;
return tot;
}
inline void splay_insert(register int x)
{
register int now=root;
if(root==0)
{
create_a_new_point(x,0);
root=tot;
return;
}
while(1)
{
t[now].size++;
if(t[now].k==x)
{
t[now].cnt++;
splay(now,root);
return;
}
register int f=x<t[now].k?0:1;
if(t[now].ch[f]==0)
{
int fa=create_a_new_point(x,now);
t[now].ch[f]=fa;
splay(fa,root);
return;
}
now=t[now].ch[f];
}
}
inline int splay_find_number(register int x)
{
register int now=root;
while(1)
{
int K=t[now].size-t[t[now].ch[1]].size;
if(t[t[now].ch[0]].size<x&&x<=K)
{
splay(now,root);
return t[now].k;
}
if(x<K) now=t[now].ch[0];
else now=t[now].ch[1],x-=K;
}
}
int cnts;
signed main()
{
register int x,y;
register int n,q;
n=read();
q=read();
splay_insert(inf);
splay_insert(-inf);
for(register int i=1; i<=n; i++)
{
x=read();
splay_insert(-x);
}
for(register int i=1; i<=q; i++)
{
x=read();
y=read();
if(x==2)splay_insert(-y);
if(x==1)printf("%d\n",abs(splay_find_number(y+1)));
}
return 0;
}