#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
ll n, k; cin >> n >> k;
vector<ll> v(n), p(n+1), s(n+1), t(n+2);
for(ll i = 0; i < n; i++) cin >> v[i], p[i+1] = p[i] + v[i], s[i+1] = s[i] + (i+1) * v[i];
// for(ll i = 0; i < n; i++) cout << s[i+1] << " ";
// cout << "\n";
t[n] = v[n-1];
for(ll i = n-2; i >= 0; i--) t[i+1] = t[i+2] + v[i] * (n - i);
// for(ll i = 0; i < n; i++) cout << t[i+1] << " ";
// cout << "\n";
ll q; cin >> q;
while(q--){
ll c; cin >> c;
if(c == 1){
ll x;
for(ll i = 0; i < k; i++) cin >> x;
}
else{
ll l, r, m; cin >> l >> r >> m;
ll sum[3] = {0, 0, 0};
// cout << l << " " << l + m << " " << r - m << " " << r << "\n";
sum[0] = s[min(r - m + 1, l + m - 1)] - s[l-1] - (l - 1) * (p[min(r - m + 1, l + m - 1)] - p[l-1]);
sum[2] = t[max(r - m + 1, l + m - 1)] - t[r+1] - (n - r) * (p[r] - p[max(r - m + 1, l + m - 1) - 1]);
if(min(r - m + 1, l + m - 1) + 1 < max(r - m + 1, l + m - 1) - 1) sum[1] = (min(r - m + 1, l + m - 1) - l + 1) * (p[max(r - m + 1, l + m - 1) - 1] - p[min(r - m + 1, l + m - 1)]);
cout << sum[0] + sum[1] + sum[2] << "\n";
}
}
}