#include<bits/stdc++.h>
using namespace std;
long long n,x,l,r,k,sum=0;
struct node{
int l,r;
};
stack<node>s;
inline long long read(){
register int s=0,w=1;
char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
while(ch>='0'&&ch<='9')s=s*10+ch-'0',ch=getchar();
return s*w;
}
int main()
{
n=read();
for(long long i=1;i<=n;i++)
{
x=read();
if(x==1)
{
l=read();
r=read();
s.push((node){
l,r
});
}
else if(x==2)
{
k=read();
sum=0;
node t=s.top();
s.pop();
while(t.l<=t.r&&k--)
{
sum+=t.r;
t.r--;
if(t.l>t.r&&k!=0)
{
t=s.top();
s.pop();
}
}
if(t.l<=t.r) s.push(t);
cout<<sum<<endl;
}
}
return 0;
}
![]()