/*
Author: Nguyen Nhut Truong
From Chuyen Tien Giang High School For The Gifed
*/
#include <bits/stdc++.h>
using namespace std;
//#define int long long
#define start signed main
#define fi first
#define se second
#define pb push_back
#define eb emplace_back
#define il pair<int,ll>
#define ii pair<int,int>
#define len(s) (int)s.size()
#define all(s) (s).begin(),(s).end()
#define OpenFile(Name) if (fopen(Name".inp","r")) freopen(Name".inp","r",stdin),freopen(Name".out","w",stdout);
#define MASK(x) ((1LL)<<(x))
#define Bit(x,i) (((x)>>(i))&1)
#define Countbit(x) __builtin_popcountll(x)
typedef long long ll;
typedef long double ld;
int dx[]={1,-1,0,0,-1,1,1,-1};
int dy[]={0,0,1,-1,-1,-1,1,1};
template <class C> bool Minimize(C &a, C b) { if (a>b) { a=b; return true; } return false;}
template <class C> bool Maximize(C &a, C b) { if (a<b) { a=b; return true; } return false;}
inline ll add(ll a,ll b,ll c) { return (a+b)%c; };
inline ll sub(ll a,ll b,ll c) { return (a-b+c)%c; };
inline ll mul(ll a,ll b,ll c) { return ((a%c)*(b%c))%c; };
mt19937_64 rd(chrono::steady_clock::now().time_since_epoch().count());
ll rand(ll l,ll r){
assert(l<=r);
return l+rd()%(r-l+1);
}
void MakeInp() {
ofstream cout("Task.inp");
cout.close();
}
/// Constant Limit
const int N=500+5,M=500+5,INF=1e9,lim=1e6;
const int block=448,base=31;
ll Mod=1e9+7,Mod_base=1777777777,LNF=1e18;
///____________________________________________________________________________________________________________________________
int a[N],maxi[M][M],mini[M][M],dp[N];
int n,q;
void init() {
memset(maxi,-0x3f,sizeof maxi);
memset(mini,0x3f,sizeof mini);
for (int i=1;i<=n;++i)
for (int j=i;j<=n;++j) {
maxi[i][j]=max(maxi[i][j-1],a[j]);
mini[i][j]=min(mini[i][j-1],a[j]);
}
}
start() {
ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
OpenFile("TASK");
cin>>n>>q;
for (int i=1;i<=n;++i) cin>>a[i];
init();
while (q--) {
int op,l,r; cin>>op>>l>>r;
if (op==1) {
int x; cin>>x;
for (int i=l;i<=r;++i) a[i]+=x;
init();
} else {
memset(dp,0,sizeof dp);
for (int i=l;i<=r;++i) {
dp[i]=dp[i-1];
for (int j=l;j<=i;++j) Maximize(dp[i],maxi[j][i]-mini[j][i]+dp[j-1]);
}
cout<<dp[r]<<'\n';
}
}
//cerr<<"\nBien dich thanh cong\nTime: "<<(1.0*clock()/CLOCKS_PER_SEC)<<" s\n";
return 0;
}
LyoKICAgIEF1dGhvcjogTmd1eWVuIE5odXQgVHJ1b25nCiAgICBGcm9tIENodXllbiBUaWVuIEdpYW5nIEhpZ2ggU2Nob29sIEZvciBUaGUgR2lmZWQKKi8KI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgovLyNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIHN0YXJ0IHNpZ25lZCBtYWluCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBlYiBlbXBsYWNlX2JhY2sKI2RlZmluZSBpbCBwYWlyPGludCxsbD4KI2RlZmluZSBpaSBwYWlyPGludCxpbnQ+CiNkZWZpbmUgbGVuKHMpIChpbnQpcy5zaXplKCkKI2RlZmluZSBhbGwocykgKHMpLmJlZ2luKCksKHMpLmVuZCgpCiNkZWZpbmUgT3BlbkZpbGUoTmFtZSkgaWYgKGZvcGVuKE5hbWUiLmlucCIsInIiKSkgZnJlb3BlbihOYW1lIi5pbnAiLCJyIixzdGRpbiksZnJlb3BlbihOYW1lIi5vdXQiLCJ3IixzdGRvdXQpOwoKI2RlZmluZSBNQVNLKHgpICgoMUxMKTw8KHgpKQojZGVmaW5lIEJpdCh4LGkpICgoKHgpPj4oaSkpJjEpCiNkZWZpbmUgQ291bnRiaXQoeCkgX19idWlsdGluX3BvcGNvdW50bGwoeCkKCnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIGxvbmcgZG91YmxlIGxkOwoKaW50IGR4W109ezEsLTEsMCwwLC0xLDEsMSwtMX07CmludCBkeVtdPXswLDAsMSwtMSwtMSwtMSwxLDF9OwoKdGVtcGxhdGUgPGNsYXNzIEM+IGJvb2wgTWluaW1pemUoQyAmYSwgQyBiKSB7IGlmIChhPmIpIHsgYT1iOyByZXR1cm4gdHJ1ZTsgfSByZXR1cm4gZmFsc2U7fQp0ZW1wbGF0ZSA8Y2xhc3MgQz4gYm9vbCBNYXhpbWl6ZShDICZhLCBDIGIpIHsgaWYgKGE8YikgeyBhPWI7IHJldHVybiB0cnVlOyB9IHJldHVybiBmYWxzZTt9CgppbmxpbmUgbGwgYWRkKGxsIGEsbGwgYixsbCBjKSB7IHJldHVybiAoYStiKSVjOyB9OwppbmxpbmUgbGwgc3ViKGxsIGEsbGwgYixsbCBjKSB7IHJldHVybiAoYS1iK2MpJWM7IH07CmlubGluZSBsbCBtdWwobGwgYSxsbCBiLGxsIGMpIHsgcmV0dXJuICgoYSVjKSooYiVjKSklYzsgfTsKCm10MTk5MzdfNjQgcmQoY2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpLnRpbWVfc2luY2VfZXBvY2goKS5jb3VudCgpKTsKCmxsIHJhbmQobGwgbCxsbCByKXsKICAgIGFzc2VydChsPD1yKTsKICAgIHJldHVybiBsK3JkKCklKHItbCsxKTsKfQoKdm9pZCBNYWtlSW5wKCkgewogICAgb2ZzdHJlYW0gY291dCgiVGFzay5pbnAiKTsKCiAgICBjb3V0LmNsb3NlKCk7Cn0KCi8vLyBDb25zdGFudCBMaW1pdAoKY29uc3QgaW50IE49NTAwKzUsTT01MDArNSxJTkY9MWU5LGxpbT0xZTY7CmNvbnN0IGludCBibG9jaz00NDgsYmFzZT0zMTsKCmxsIE1vZD0xZTkrNyxNb2RfYmFzZT0xNzc3Nzc3Nzc3LExORj0xZTE4OwoKLy8vX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKaW50IGFbTl0sbWF4aVtNXVtNXSxtaW5pW01dW01dLGRwW05dOwppbnQgbixxOwoKdm9pZCBpbml0KCkgewogICAgbWVtc2V0KG1heGksLTB4M2Ysc2l6ZW9mIG1heGkpOwogICAgbWVtc2V0KG1pbmksMHgzZixzaXplb2YgbWluaSk7CgogICAgZm9yIChpbnQgaT0xO2k8PW47KytpKQogICAgZm9yIChpbnQgaj1pO2o8PW47KytqKSB7CiAgICAgICAgbWF4aVtpXVtqXT1tYXgobWF4aVtpXVtqLTFdLGFbal0pOwogICAgICAgIG1pbmlbaV1bal09bWluKG1pbmlbaV1bai0xXSxhW2pdKTsKICAgIH0KfQoKc3RhcnQoKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiAgICBPcGVuRmlsZSgiVEFTSyIpOwoKICAgIGNpbj4+bj4+cTsKICAgIGZvciAoaW50IGk9MTtpPD1uOysraSkgY2luPj5hW2ldOwoKICAgIGluaXQoKTsKICAgIHdoaWxlIChxLS0pIHsKICAgICAgICBpbnQgb3AsbCxyOyBjaW4+Pm9wPj5sPj5yOwogICAgICAgIGlmIChvcD09MSkgewogICAgICAgICAgICBpbnQgeDsgY2luPj54OwogICAgICAgICAgICBmb3IgKGludCBpPWw7aTw9cjsrK2kpIGFbaV0rPXg7CiAgICAgICAgICAgIGluaXQoKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBtZW1zZXQoZHAsMCxzaXplb2YgZHApOwoKICAgICAgICAgICAgZm9yIChpbnQgaT1sO2k8PXI7KytpKSB7CiAgICAgICAgICAgICAgICBkcFtpXT1kcFtpLTFdOwogICAgICAgICAgICAgICAgZm9yIChpbnQgaj1sO2o8PWk7KytqKSBNYXhpbWl6ZShkcFtpXSxtYXhpW2pdW2ldLW1pbmlbal1baV0rZHBbai0xXSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGNvdXQ8PGRwW3JdPDwnXG4nOwogICAgICAgIH0KICAgIH0KCgoKCiAgICAvL2NlcnI8PCJcbkJpZW4gZGljaCB0aGFuaCBjb25nXG5UaW1lOiAiPDwoMS4wKmNsb2NrKCkvQ0xPQ0tTX1BFUl9TRUMpPDwiIHNcbiI7CiAgICByZXR1cm4gMDsKfQoK