/*
Author: Cadocx
Codeforces: https://c...content-available-to-author-only...s.com/profile/Kadoc
VNOJ: oj.vnoi.info/user/Cadoc
*/
#include <bits/stdc++.h>
using namespace std;
// input/output
#define fastIO ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0)
#define el cout << '\n'
#define debug(x) cout << #x << " = " << x << '\n'
#define execute cerr << "Time elapsed: " << (1.0 * clock() / CLOCKS_PER_SEC) << "s"
// #pragma GCC optimize("O2", "unroll-loops", "Ofast")
// #pragma GCC target("avx,avx2,fma")
//data type
#define ll long long
#define ull unsigned long long
#define pii pair<int, int>
#define pll pair<ll, ll>
#define piv pair<int, vector<int>>
#define vi vector<int>
#define vl vector<ll>
#define vc vector<char>
template<typename T> bool maximize(T &res, const T &val) { if (res < val){ res = val; return 1; }; return 0; }
template<typename T> bool minimize(T &res, const T &val) { if (res > val){ res = val; return 1; }; return 0; }
//STL
#define sz(x) (int)(x).size()
#define FOR(i,l,r) for(auto i = l; i <= r; i++)
#define FORD(i,r,l) for(auto i = r; i >= l; i--)
#define forin(i,a) for(auto i : a)
#define pb push_back
#define eb emplace_back
#define pf push_front
#define all(x) (x).begin(), (x).end()
#define fi first
#define se second
//bitmask
#define bitcnt(n) __builtin_popcount(n)
#define mask(i) (1 << (i))
#define bit(n, i) (((n) >> (i)) & 1)
#define set_on(n, i) ((n) | mask(i))
#define set_off(n, i) ((n) & ~mask(i))
//constant
#define N 300005
#define MOD 1000230007
#define INF 0x3f3f3f3f
#define LINF 0x3f3f3f3f3f3f3f3f
#define base 31
#define Kadoc 0
int n, q;
ll a[N];
ll st[N << 2], lz[N << 2], t[N];
void push(int id, int l, int r){
if(!lz[id]) return;
st[id] += lz[id];
if(l != r){
lz[id<<1] += lz[id];
lz[id<<1|1] += lz[id];
}
lz[id] = 0;
}
void upd(int id, int l, int r, int u, int v, ll x){
push(id, l, r);
if(v < l || r < u) return;
if(u <= l && r <= v){
lz[id] += x;
push(id, l, r);
return;
}
int m = (l+r)>>1;
upd(id<<1, l, m, u, v, x);
upd(id<<1|1, m+1, r, u, v, x);
st[id] = max(st[id<<1], st[id<<1|1]);
}
ll get(int id, int l, int r, int u, int v){
push(id, l, r);
if(v < l || r < u) return -LINF;
if(u <= l && r <= v) return st[id];
int m = (l+r)>>1;
return max(get(id<<1, l, m, u, v), get(id<<1|1, m+1, r, u, v));
}
void updBIT(int x, ll v){
for(;x<=N; x+=x&-x) t[x] += v;
}
ll getBIT(int x){
ll Ans = 0;
for(;x; x-=x&-x) Ans += t[x];
return Ans;
}
void solve(){
cin >> n >> q;
ll pre = 0;
FOR(i, 1, n){
cin >> a[i];
updBIT(i, a[i]);
upd(1, 1, n, i, i, a[i] - pre);
pre += a[i];
}
while(q--){
int op; cin >> op;
if(op == 1){
int i, x; cin >> i >> x;
upd(1, 1, n, i+1, n, a[i] - x);
upd(1, 1, n, i, i, x - a[i]);
updBIT(i, x - a[i]);
a[i] = x;
}
else{
int l, r; cin >> l >> r;
cout << get(1, 1, n, l, r) + getBIT(l-1); el;
}
}
}
int main(){
#define NAME "lol"
if(fopen(NAME".inp", "r")){
freopen(NAME".inp", "r", stdin);
freopen(NAME".out", "w", stdout);
}
fastIO;
if(Kadoc){
int tc; cin >> tc;
while(tc--){
solve();
}
} else solve();
}
LyoKICAgIEF1dGhvcjogQ2Fkb2N4CiAgICBDb2RlZm9yY2VzOiBodHRwczovL2MuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLnMuY29tL3Byb2ZpbGUvS2Fkb2MKICAgIFZOT0o6IG9qLnZub2kuaW5mby91c2VyL0NhZG9jCiovCgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIGlucHV0L291dHB1dAojZGVmaW5lIGZhc3RJTyBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApLCBjaW4udGllKDApLCBjb3V0LnRpZSgwKQojZGVmaW5lIGVsIGNvdXQgPDwgJ1xuJwojZGVmaW5lIGRlYnVnKHgpIGNvdXQgPDwgI3ggPDwgIiA9ICIgPDwgeCA8PCAnXG4nCiNkZWZpbmUgZXhlY3V0ZSBjZXJyIDw8ICJUaW1lIGVsYXBzZWQ6ICIgPDwgKDEuMCAqIGNsb2NrKCkgLyBDTE9DS1NfUEVSX1NFQykgPDwgInMiCi8vICNwcmFnbWEgR0NDIG9wdGltaXplKCJPMiIsICJ1bnJvbGwtbG9vcHMiLCAiT2Zhc3QiKQovLyAjcHJhZ21hIEdDQyB0YXJnZXQoImF2eCxhdngyLGZtYSIpCi8vZGF0YSB0eXBlCiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgdWxsIHVuc2lnbmVkIGxvbmcgbG9uZwojZGVmaW5lIHBpaSBwYWlyPGludCwgaW50PgojZGVmaW5lIHBsbCBwYWlyPGxsLCBsbD4KI2RlZmluZSBwaXYgcGFpcjxpbnQsIHZlY3RvcjxpbnQ+PgojZGVmaW5lIHZpIHZlY3RvcjxpbnQ+CiNkZWZpbmUgdmwgdmVjdG9yPGxsPgojZGVmaW5lIHZjIHZlY3RvcjxjaGFyPgp0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBib29sIG1heGltaXplKFQgJnJlcywgY29uc3QgVCAmdmFsKSB7IGlmIChyZXMgPCB2YWwpeyByZXMgPSB2YWw7IHJldHVybiAxOyB9OyByZXR1cm4gMDsgfQp0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBib29sIG1pbmltaXplKFQgJnJlcywgY29uc3QgVCAmdmFsKSB7IGlmIChyZXMgPiB2YWwpeyByZXMgPSB2YWw7IHJldHVybiAxOyB9OyByZXR1cm4gMDsgfQovL1NUTAojZGVmaW5lIHN6KHgpIChpbnQpKHgpLnNpemUoKQojZGVmaW5lIEZPUihpLGwscikgZm9yKGF1dG8gaSA9IGw7IGkgPD0gcjsgaSsrKQojZGVmaW5lIEZPUkQoaSxyLGwpIGZvcihhdXRvIGkgPSByOyBpID49IGw7IGktLSkKI2RlZmluZSBmb3JpbihpLGEpIGZvcihhdXRvIGkgOiBhKQojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGViIGVtcGxhY2VfYmFjawojZGVmaW5lIHBmIHB1c2hfZnJvbnQKI2RlZmluZSBhbGwoeCkgKHgpLmJlZ2luKCksICh4KS5lbmQoKQojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCi8vYml0bWFzawojZGVmaW5lIGJpdGNudChuKSBfX2J1aWx0aW5fcG9wY291bnQobikKI2RlZmluZSBtYXNrKGkpICgxIDw8IChpKSkKI2RlZmluZSBiaXQobiwgaSkgKCgobikgPj4gKGkpKSAmIDEpCiNkZWZpbmUgc2V0X29uKG4sIGkpICgobikgfCBtYXNrKGkpKQojZGVmaW5lIHNldF9vZmYobiwgaSkgKChuKSAmIH5tYXNrKGkpKQovL2NvbnN0YW50CiNkZWZpbmUgTiAzMDAwMDUKI2RlZmluZSBNT0QgMTAwMDIzMDAwNwojZGVmaW5lIElORiAweDNmM2YzZjNmCiNkZWZpbmUgTElORiAweDNmM2YzZjNmM2YzZjNmM2YKI2RlZmluZSBiYXNlIDMxCiNkZWZpbmUgS2Fkb2MgMAoKaW50IG4sIHE7CmxsIGFbTl07CmxsIHN0W04gPDwgMl0sIGx6W04gPDwgMl0sIHRbTl07Cgp2b2lkIHB1c2goaW50IGlkLCBpbnQgbCwgaW50IHIpewogICAgaWYoIWx6W2lkXSkgcmV0dXJuOwogICAgc3RbaWRdICs9IGx6W2lkXTsKICAgIGlmKGwgIT0gcil7CiAgICAgICAgbHpbaWQ8PDFdICs9IGx6W2lkXTsKICAgICAgICBseltpZDw8MXwxXSArPSBseltpZF07CiAgICB9CiAgICBseltpZF0gPSAwOwp9Cgp2b2lkIHVwZChpbnQgaWQsIGludCBsLCBpbnQgciwgaW50IHUsIGludCB2LCBsbCB4KXsKICAgIHB1c2goaWQsIGwsIHIpOwogICAgaWYodiA8IGwgfHwgciA8IHUpIHJldHVybjsKICAgIGlmKHUgPD0gbCAmJiByIDw9IHYpewogICAgICAgIGx6W2lkXSArPSB4OwogICAgICAgIHB1c2goaWQsIGwsIHIpOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGludCBtID0gKGwrcik+PjE7CiAgICB1cGQoaWQ8PDEsIGwsIG0sIHUsIHYsIHgpOwogICAgdXBkKGlkPDwxfDEsIG0rMSwgciwgdSwgdiwgeCk7CiAgICBzdFtpZF0gPSBtYXgoc3RbaWQ8PDFdLCBzdFtpZDw8MXwxXSk7Cn0KCmxsIGdldChpbnQgaWQsIGludCBsLCBpbnQgciwgaW50IHUsIGludCB2KXsKICAgIHB1c2goaWQsIGwsIHIpOwogICAgaWYodiA8IGwgfHwgciA8IHUpIHJldHVybiAtTElORjsKICAgIGlmKHUgPD0gbCAmJiByIDw9IHYpIHJldHVybiBzdFtpZF07CiAgICBpbnQgbSA9IChsK3IpPj4xOwogICAgcmV0dXJuIG1heChnZXQoaWQ8PDEsIGwsIG0sIHUsIHYpLCBnZXQoaWQ8PDF8MSwgbSsxLCByLCB1LCB2KSk7Cn0KCnZvaWQgdXBkQklUKGludCB4LCBsbCB2KXsKICAgIGZvcig7eDw9TjsgeCs9eCYteCkgdFt4XSArPSB2Owp9CgpsbCBnZXRCSVQoaW50IHgpewogICAgbGwgQW5zID0gMDsKICAgIGZvcig7eDsgeC09eCYteCkgQW5zICs9IHRbeF07CiAgICByZXR1cm4gQW5zOwp9Cgp2b2lkIHNvbHZlKCl7CiAgICBjaW4gPj4gbiA+PiBxOwoKICAgIGxsIHByZSA9IDA7CiAgICBGT1IoaSwgMSwgbil7CiAgICAgICAgY2luID4+IGFbaV07CiAgICAgICAgdXBkQklUKGksIGFbaV0pOwogICAgICAgIHVwZCgxLCAxLCBuLCBpLCBpLCBhW2ldIC0gcHJlKTsKICAgICAgICBwcmUgKz0gYVtpXTsKICAgIH0KCiAgICB3aGlsZShxLS0pewogICAgICAgIGludCBvcDsgY2luID4+IG9wOwogICAgICAgIGlmKG9wID09IDEpewogICAgICAgICAgICBpbnQgaSwgeDsgY2luID4+IGkgPj4geDsKICAgICAgICAgICAgdXBkKDEsIDEsIG4sIGkrMSwgbiwgYVtpXSAtIHgpOwogICAgICAgICAgICB1cGQoMSwgMSwgbiwgaSwgaSwgeCAtIGFbaV0pOwogICAgICAgICAgICB1cGRCSVQoaSwgeCAtIGFbaV0pOwogICAgICAgICAgICBhW2ldID0geDsKICAgICAgICB9CiAgICAgICAgZWxzZXsKICAgICAgICAgICAgaW50IGwsIHI7IGNpbiA+PiBsID4+IHI7CiAgICAgICAgICAgIGNvdXQgPDwgZ2V0KDEsIDEsIG4sIGwsIHIpICsgZ2V0QklUKGwtMSk7IGVsOwogICAgICAgIH0KICAgIH0KfQoKaW50IG1haW4oKXsKICAgICNkZWZpbmUgTkFNRSAibG9sIgogICAgaWYoZm9wZW4oTkFNRSIuaW5wIiwgInIiKSl7CiAgICAgICAgZnJlb3BlbihOQU1FIi5pbnAiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKE5BTUUiLm91dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KCiAgICBmYXN0SU87CiAgICAKICAgIGlmKEthZG9jKXsKICAgICAgICBpbnQgdGM7IGNpbiA+PiB0YzsKICAgICAgICB3aGlsZSh0Yy0tKXsKICAgICAgICAgICAgc29sdmUoKTsKICAgICAgICB9CiAgICB9IGVsc2Ugc29sdmUoKTsKfQ==