#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+5;
ll n;
struct node{
ll l,r,sum,tot;
}a[N];
stack<int>s;
int main(){
// freopen("r.in","r",stdin);
// freopen("rs.out","w",stdout);
scanf("%lld",&n);
for(int i=1;i<=n;++i){
int ju;
ll ans=0;
scanf("%d",&ju);
if(ju==1){
int l,r;
scanf("%d%d",&l,&r);
s.push(i);
a[i].l=l,a[i].r=r,a[i].tot=r-l+1;
a[i].sum=((r+1)*r)/2-(l*(l-1))/2;
}
if(ju==2){
long long k,la;
scanf("%lld",&k);
while(k){
int r=s.top();
s.pop();
if(k>=a[r].tot){
k-=a[r].tot;
ans+=a[r].sum;
// printf("%lld %lld\n",k,ans);
}
else{
a[r].tot-=k;
k=0;
ans+=(a[r].r*(a[r].r+1))/2;
a[r].r=a[r].l+a[r].tot-1;
ans-=(a[r].r*(a[r].r+1))/2;
s.push(r);
a[r].sum=((a[r].r+1)*a[r].r)/2-(a[r].l*(a[r].l))/2;
// printf("%d %d %d %d\n",a[r].l,a[r].r,a[r].tot,a[r].sum);
}
}
printf("%lld\n",ans);
}
}
}