const maxn = 100010;
var arb : array[1..maxn*4+1] of longint;
v : array[1..maxn+1] of longint;
maxim,n,m,z,aux,q,a,b,i,x : longint;
f,g : text;
c : char;
s : array[1..1000000] of char;
function max(x,y : longint):longint;
begin
if x>y then max:=x else max:=y;
end;
procedure get_max(p,u,nr : longint);
var m : longint;
begin
if (a<=p)and(u<=b) then
maxim:=max(maxim,arb[nr])
else
begin
m:=(p+u)shr 1;
if(a<=m)then get_max(p,m,nr shl 1);
if(b>m)then get_max(m+1,u,nr shl 1+1);
end;
end;
procedure modify(a,p,u,nr : longint);
var m : longint;
begin
if p=u then arb[nr]:=b
else
begin
m:=(p+u)shr 1;
if (a<=m) then modify(a,p,m,nr shl 1)
else modify(a,m+1,u,nr shl 1+1);
arb[nr]:=max(arb[nr shl 1],arb[nr shl 1+1]);
end;
end;
begin
assign(f,'arbint.in');reset(f);
assign(g,'arbint.out');rewrite(g);
readln(f,n,m);
z:=0;aux:=0;
while not eof(f) do
begin
while not eoln(f) do
begin
inc(z); read(f,c);
s[z]:=c;
end;
inc(z); s[z]:=' ';
readln(f);
end;
for i:=1 to z do
if (s[i]=' ')and(s[i-1]<>' ') then
begin
inc(q);
v[q]:=aux;
aux:=0;
end
else
aux:=aux*10+ord(s[i])-48;
inc(q);
v[q]:=aux;
for a:=1 to n do
begin
b:=v[a];
modify(a,1,n,1);
end;
i:=n+1;
while i<q do
begin
x:=v[i];a:=v[i+1];b:=v[i+2];
inc(i,3);
if x<>0 then modify(a,1,n,1)
else
begin
maxim:=0;
get_max(1,n,1);
writeln(g,maxim);
end;
end;
close(g);
end.