/*
Cred : SunnyYeahBoi
Currently Coding at school :>
Problem :
*/
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define double long double
#define endl "\n"
const int MAXN = 1000005;
const int inf = 1e18;
const int MOD = 1e9 + 7;
int pow_mod(int a , int b){
a %= MOD;
if(b == 0) return 1;
if(b == 1) return a;
int tmp = pow_mod(a , b / 2);
if(b % 2 == 0)
return (tmp * tmp) % MOD;
else return ((tmp * tmp) % MOD * a) % MOD;
}
void Unique(vector<int>& a){
sort(a.begin() , a.end());
a.resize(distance(a.begin() , unique(a.begin() , a.end())));
}
struct SegTree{
int n;
vector<int> tree , lazy;
void init(int x){
n = x + 1;
tree.resize(4 * n + 1 , 0);
lazy.resize(4 * n + 1 , 0);
}
void pushDown(int vt){
int d = lazy[vt];
lazy[vt] = 0;
tree[vt * 2] += d;
tree[vt * 2 + 1] += d;
lazy[vt * 2] += d;
lazy[vt * 2 + 1] += d;
}
void update(int vt , int l , int r , int u , int v , int k){
if(u <= l && r <= v){
tree[vt] += k;
lazy[vt] += k;
return;
}
if(l > v || r < u) return;
int mid = (l + r) / 2;
pushDown(vt);
update(vt * 2 , l , mid , u , v , k);
update(vt * 2 + 1 , mid + 1 , r , u , v , k);
tree[vt] = max(tree[vt * 2] , tree[vt * 2 + 1]);
}
void update(int u , int v , int k){
update(1 , 1 , n , u , v , k);
}
int getMax(int vt , int l , int r , int u , int v){
if(u <= l && r <= v) return tree[vt];
if(l > v || r < u) return -inf;
int mid = (l + r) / 2;
pushDown(vt);
return max(getMax(vt * 2 , l , mid , u , v) , getMax(vt * 2 + 1 , mid + 1 , r , u , v));
}
int getMax(int l , int r){
return getMax(1 , 1 , n , l , r);
}
};
int n , m;
void solve(){
cin >> n >> m;
SegTree ST;
ST.init(n);
while(m--){
int op;
cin >> op;
if(op == 0){
int l , r, k;
cin >> l >> r >> k;
ST.update(l , r , k);
}
if(op == 1){
int l , r;
cin >> l >> r;
cout << ST.getMax(l , r) << endl;
}
}
}
int32_t main(){
// freopen(".INP" , "r" , stdin);
// freopen(".OUT" , "w" , stdout);
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
solve();
return 0;
}
LyoKCUNyZWQgOiBTdW5ueVllYWhCb2kKCUN1cnJlbnRseSBDb2RpbmcgYXQgc2Nob29sIDo+CglQcm9ibGVtIDogCiovCgojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIGRvdWJsZSBsb25nIGRvdWJsZQojZGVmaW5lIGVuZGwgIlxuIgoKY29uc3QgaW50IE1BWE4gPSAxMDAwMDA1Owpjb25zdCBpbnQgaW5mID0gMWUxODsKY29uc3QgaW50IE1PRCA9IDFlOSArIDc7CgppbnQgcG93X21vZChpbnQgYSAsIGludCBiKXsKICAgIGEgJT0gTU9EOwogICAgCiAgICBpZihiID09IDApIHJldHVybiAxOwogICAgaWYoYiA9PSAxKSByZXR1cm4gYTsKICAgIAogICAgaW50IHRtcCA9IHBvd19tb2QoYSAsIGIgLyAyKTsKICAgIAogICAgaWYoYiAlIDIgPT0gMCkKICAgICAgICByZXR1cm4gKHRtcCAqIHRtcCkgJSBNT0Q7CiAgICBlbHNlIHJldHVybiAoKHRtcCAqIHRtcCkgJSBNT0QgKiBhKSAlIE1PRDsKfQoKdm9pZCBVbmlxdWUodmVjdG9yPGludD4mIGEpewoJc29ydChhLmJlZ2luKCkgLCBhLmVuZCgpKTsKCWEucmVzaXplKGRpc3RhbmNlKGEuYmVnaW4oKSAsIHVuaXF1ZShhLmJlZ2luKCkgLCBhLmVuZCgpKSkpOwp9CgpzdHJ1Y3QgU2VnVHJlZXsKCWludCBuOwoJdmVjdG9yPGludD4gdHJlZSAsIGxhenk7CgkKCXZvaWQgaW5pdChpbnQgeCl7CgkJbiA9IHggKyAxOwoJCXRyZWUucmVzaXplKDQgKiBuICsgMSAsIDApOwoJCWxhenkucmVzaXplKDQgKiBuICsgMSAsIDApOwoJfSAJCgkKCXZvaWQgcHVzaERvd24oaW50IHZ0KXsKCQlpbnQgZCA9IGxhenlbdnRdOwoJCWxhenlbdnRdID0gMDsKCQkKCQl0cmVlW3Z0ICogMl0gKz0gZDsKCQl0cmVlW3Z0ICogMiArIDFdICs9IGQ7CgkJbGF6eVt2dCAqIDJdICs9IGQ7CgkJbGF6eVt2dCAqIDIgKyAxXSArPSBkOwoJfQoJCgl2b2lkIHVwZGF0ZShpbnQgdnQgLCBpbnQgbCAsIGludCByICwgaW50IHUgLCBpbnQgdiAsIGludCBrKXsKCQlpZih1IDw9IGwgJiYgciA8PSB2KXsKCQkJdHJlZVt2dF0gKz0gazsKCQkJbGF6eVt2dF0gKz0gazsKCQkJcmV0dXJuOwoJCX0KCQkKCQlpZihsID4gdiB8fCByIDwgdSkgcmV0dXJuOwoJCQoJCWludCBtaWQgPSAobCArIHIpIC8gMjsKCQkKCQlwdXNoRG93bih2dCk7CgkJCgkJdXBkYXRlKHZ0ICogMiAsIGwgLCBtaWQgLCB1ICwgdiAsIGspOwoJCXVwZGF0ZSh2dCAqIDIgKyAxICwgbWlkICsgMSAsIHIgLCB1ICwgdiAsIGspOwoJCQoJCXRyZWVbdnRdID0gbWF4KHRyZWVbdnQgKiAyXSAsIHRyZWVbdnQgKiAyICsgMV0pOwoJfQoJCgl2b2lkIHVwZGF0ZShpbnQgdSAsIGludCB2ICwgaW50IGspewoJCXVwZGF0ZSgxICwgMSAsIG4gLCB1ICwgdiAsIGspOwoJfQoJCglpbnQgZ2V0TWF4KGludCB2dCAsIGludCBsICwgaW50IHIgLCBpbnQgdSAsIGludCB2KXsKCQlpZih1IDw9IGwgJiYgciA8PSB2KSByZXR1cm4gdHJlZVt2dF07CgkJaWYobCA+IHYgfHwgciA8IHUpIHJldHVybiAtaW5mOwoJCQoJCWludCBtaWQgPSAobCArIHIpIC8gMjsKCQlwdXNoRG93bih2dCk7CgkJCgkJcmV0dXJuIG1heChnZXRNYXgodnQgKiAyICwgbCAsIG1pZCAsIHUgLCB2KSAsIGdldE1heCh2dCAqIDIgKyAxICwgbWlkICsgMSAsIHIgLCB1ICwgdikpOwoJfQoJCglpbnQgZ2V0TWF4KGludCBsICwgaW50IHIpewoJCXJldHVybiBnZXRNYXgoMSAsIDEgLCBuICwgbCAsIHIpOwoJfQp9OwoKaW50IG4gLCBtOwoKdm9pZCBzb2x2ZSgpewoJY2luID4+IG4gPj4gbTsKCQoJU2VnVHJlZSBTVDsKCVNULmluaXQobik7CgkKCXdoaWxlKG0tLSl7CgkJaW50IG9wOwoJCWNpbiA+PiBvcDsKCQkKCQlpZihvcCA9PSAwKXsKCQkJaW50IGwgLCByLCBrOwoJCQljaW4gPj4gbCA+PiByID4+IGs7CgkJCVNULnVwZGF0ZShsICwgciAsIGspOwoJCX0KCQkKCQlpZihvcCA9PSAxKXsKCQkJaW50IGwgLCByOwoJCQljaW4gPj4gbCA+PiByOwoJCQljb3V0IDw8IFNULmdldE1heChsICwgcikgPDwgZW5kbDsKCQl9Cgl9Cn0KCmludDMyX3QgbWFpbigpewoJLy8gZnJlb3BlbigiLklOUCIgLCAiciIgLCBzdGRpbik7CgkvLyBmcmVvcGVuKCIuT1VUIiAsICJ3IiAsIHN0ZG91dCk7Cglpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApO2Npbi50aWUoMCk7Y291dC50aWUoMCk7Cglzb2x2ZSgpOwoJcmV0dXJuIDA7Cn0=