#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll N = 4e5 + 5;
ll n,q,t,w;
ll a[N], b[N];
bool check(ll val)
{
ll l = 1, r = n;
for(int i = 1; i <= n; i++)
{
ll phu = a[i] - val;
if(phu <= 0) continue;
l = max(l, i - (w - phu));
r = min(r, i + (w - phu));
}
return (l<=r);
}
int main()
{
ios_base::sync_with_stdio(0);
cout.tie(0);cin.tie(0);
cin >> n >> q >> t >> w;
for(int i = 1; i <= n; i++) cin >> a[i];
for(int i=1;i<=q;i++){
int l, r, c;
cin >> l >> r >> c;
b[l] += c;
b[r + 1] -= c;
}
ll MAX = 0;
for(int i = 1; i <= n; i++){
b[i] = b[i - 1] + b[i];
a[i] = a[i] + b[i];
MAX = max(MAX, a[i]);
}
if(t==1)
{
long long l = -2e9, r = 2e9, mid, res;
while(l <= r){
mid = (l + r) / 2;
if(check(mid)){
res = mid;
r = mid - 1;
}
else l = mid + 1;
}
cout << res;
}
else cout << MAX;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBsbCBsb25nIGxvbmcKY29uc3QgbGwgTiA9IDRlNSArIDU7CmxsIG4scSx0LHc7CmxsIGFbTl0sIGJbTl07CmJvb2wgY2hlY2sobGwgdmFsKQp7CiAgICBsbCBsID0gMSwgciA9IG47CiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG47IGkrKykKICAgIHsKICAgICAgICBsbCBwaHUgPSBhW2ldIC0gdmFsOwogICAgICAgIGlmKHBodSA8PSAwKSBjb250aW51ZTsKICAgICAgICBsID0gbWF4KGwsIGkgLSAodyAtIHBodSkpOwogICAgICAgIHIgPSBtaW4ociwgaSArICh3IC0gcGh1KSk7CiAgICB9CiAgICByZXR1cm4gKGw8PXIpOwp9CmludCBtYWluKCkKewogICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICAgY291dC50aWUoMCk7Y2luLnRpZSgwKTsKICAgICBjaW4gPj4gbiA+PiBxID4+IHQgPj4gdzsKICAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgY2luID4+IGFbaV07CgogICAgIGZvcihpbnQgaT0xO2k8PXE7aSsrKXsKICAgICAgICAgIGludCBsLCByLCBjOwogICAgICAgICAgY2luID4+IGwgPj4gciA+PiBjOwogICAgICAgICAgYltsXSArPSBjOwogICAgICAgICAgYltyICsgMV0gLT0gYzsKICAgICB9CiAgICAgbGwgTUFYID0gMDsKICAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG47IGkrKyl7CiAgICAgICAgICBiW2ldID0gYltpIC0gMV0gKyBiW2ldOwogICAgICAgICAgYVtpXSA9IGFbaV0gKyBiW2ldOwogICAgICAgICAgTUFYID0gbWF4KE1BWCwgYVtpXSk7CiAgICAgfQogICAgIGlmKHQ9PTEpCiAgICAgewogICAgICAgICAgbG9uZyBsb25nIGwgPSAtMmU5LCByID0gMmU5LCBtaWQsIHJlczsKICAgICAgICAgIHdoaWxlKGwgPD0gcil7CiAgICAgICAgICAgICAgIG1pZCA9IChsICsgcikgLyAyOwogICAgICAgICAgICAgICBpZihjaGVjayhtaWQpKXsKICAgICAgICAgICAgICAgICAgICByZXMgPSBtaWQ7CiAgICAgICAgICAgICAgICAgICAgciA9IG1pZCAtIDE7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgZWxzZSBsID0gbWlkICsgMTsKICAgICAgICAgIH0KICAgICAgICAgIGNvdXQgPDwgcmVzOwogICAgIH0KICAgICBlbHNlIGNvdXQgPDwgTUFYOwp9Cg==