#define _CRT_SECURE_NO_WARNINGS
#include<bits/stdc++.h>
using namespace std;
int n;
int p,l,r,k;
long long ans = 0;
struct node{
int l, r;
};
stack<node> a;
int main(){
scanf("%d", &n);
node t;
for(int i = 1; i <= n; i++){
scanf("%d", &p);
if(p == 1){
scanf("%d%d", &t.l, &t.r);
a.push(t);
}
else{
node ta = a.top();
scanf("%d", &k);
if(ta.r - ta.l + 1 >= k){
ans += ((ta.r - k + 1 + ta.r) * k) / 2;
if(ta.r - ta.l + 1 == k) a.pop();
else{
a.pop();
ta.r -= k;
a.push(ta);
}
}
else{
while(k > 0){
ta = a.top();
if(ta.r - ta.l + 1 <= k){
ans += (ta.r + ta.l) * (ta.r - ta.l + 1) / 2;
a.pop();
k -= ta.r - ta.l + 1;
}
else{
ans += (ta.r - k + 1 + ta.r) * k / 2;
ta.r -= k;
a.push(ta);
k = 0;
}
}
}
cout << ans << endl;
}
ans = 0;
}
return 0;
}