var v : array[-33000..33000,0..64] of word;
a : array[-33000..33000] of byte;
i,t,j,n,m,o,x,c,max,k,s,fin : longint;
f,g : text;
begin
assign(f,'marbles.in');reset(f);
assign(g,'marbles.out');rewrite(g);
read(f,n,m);
for i:=1 to n do
begin
read(f,x,c);
a[x]:=c;
inc(v[x,c]);
end;
for i:=-32000 to 32000 do
for j:=1 to 64 do
v[i,j]:=v[i,j]+v[i-1,j];
for t:=1 to m do
begin
read(f,o,i,j);
if o=0 then
begin
a[i+j]:=a[i];
dec(v[i,a[i]]);
{dec(v[i+j,a[i+j]]);
dec(v[i,a[i+j]]);}
inc(v[i+j,a[i]]);
a[i]:=0;
end
else
begin
max:=0;
for k:=1 to 64 do
if v[j,k]-v[i-1,k]>max then
max:=v[j,k]-v[i-1,k];
writeln(g,max);
end;
end;
close(g);
end.