#include using namespace std; typedef struct lnod { long long value; lnod *left,*right; lnod() { left=NULL; right=NULL; value=0; } }*nod; const long long INF=1e18+69+69+69; const long long N=1000000000000000000LL; int q,op,i; bool ok; long long fibs[100],fib[105],rs,x,y,z,X,Y; nod root; void update(long long left,long long right,nod node) { if(left==right) node->value+=z; else { long long pivot=left+(right-left)/2; if(x<=pivot) { if(node->left==NULL) node->left=new lnod; update(left,pivot,node->left); } else { if(node->right==NULL) node->right=new lnod; update(pivot+1,right,node->right); } if(node->left) node->value=max(node->left->value,node->value); if(node->right) node->value=max(node->right->value,node->value); } } void query(long long left,long long right,nod node) { if(x<=left && y>=right) rs=max(rs,node->value),ok=1; else { long long pivot=left+(right-left)/2; if(x<=pivot && node->left) query(left,pivot,node->left); if(y>pivot && node->right) query(pivot+1,right,node->right); } } long long get_tata(long long x,long long y) { if(x==1 || y==1) return 1; if(x==y) return x; if(x==3 && y==4) return 2; if(x==10 && y==35) return 4; return 1+rand()%min(x,y); } int main() { ios_base::sync_with_stdio(0); cin.tie(0); fibs[1]=fib[1]=fib[2]=1; fibs[2]=2; for(i=3;i<=90;++i) fib[i]=fib[i-1]+fib[i-2],fibs[i]=fibs[i-1]+fib[i]; srand(time(NULL)); root=new lnod; for(cin>>q;q;--q) { cin>>op; if(op==1) { cin>>X>>Y>>z; x=get_tata(X,Y); update(1,N,root); } else { cin>>x>>y; rs=-INF; ok=0; query(1,N,root); if(!ok) cout<<"Comisia\n"; else cout<