#/**
* Author: Jorge Raul Tzab Lopez
* Github: https://g...content-available-to-author-only...b.com/SJMA11723
*/
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef vector<int> vi;
typedef vector<ll> vll;
typedef vector<pii> vpii;
typedef vector<pll> vpll;
#define all(x) (x).begin(), (x).end()
#define fi first
#define se second
#define pb push_back
#define sz(x) (int)(x).size()
#define MAXK 500000
const ll MOD = 1e9 + 7;
struct segment_tree{
struct node{
ll val, lazy;
node(): val(0), lazy(0){}
};
vector<node> nodes;
segment_tree(int n){
nodes.resize(4 * n + 1);
}
void combine_lz(ll lz, int pos){
nodes[pos].lazy += lz;
}
void apply_lz(int pos, int tam){
nodes[pos].val += nodes[pos].lazy * tam;
nodes[pos].lazy = 0;
}
void push_lz(int pos, int left, int right){
int len = right - left + 1;
if(1 < len){
combine_lz(nodes[pos].lazy, pos * 2);
combine_lz(nodes[pos].lazy, pos * 2 + 1);
}
apply_lz(pos, len);
}
void update(int x, int l, int r, int left, int right, int pos = 1){
push_lz(pos, left, right);
if(r < left || right < l) return;
if(l <= left && right <= r){
combine_lz(x, pos);
push_lz(pos, left, right);
return;
}
int mid = (left + right) / 2;
update(x, l, r, left, mid, pos * 2);
update(x, l, r, mid + 1, right, pos * 2 + 1);
nodes[pos].val = nodes[pos * 2].val + nodes[pos * 2 + 1].val;
}
int query(ll &x, int left, int right, int pos = 1){
push_lz(pos, left, right);
if(left == right) return left;
int mid = (left + right) / 2;
push_lz(pos * 2, left, mid);
if(nodes[pos * 2].val >= x) return query(x, left, mid, pos * 2);
x -= nodes[pos * 2].val;
return query(x, mid + 1, right, pos * 2 + 1);
}
};
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n, q; cin >> n >> q;
int arr[n];
for(int &x : arr) cin >> x;
segment_tree ST(n);
int L[MAXK + 1], R[MAXK + 1], X[MAXK + 1];
while(q--){
int k; cin >> k;
ll N = 0;
for(int i = 0; i < k; ++i){
cin >> L[i] >> R[i] >> X[i];
ST.update(X[i], L[i], R[i], 1, n);
N += 1ll * X[i] * (R[i] - L[i] + 1);
}
ll x = (N >> 1) + 1;
if(!(N & 1)) x--;
int pos_a = ST.query(x, 1, n);
int a = arr[pos_a - 1], b = a;
if(!(N & 1)){
ll freq = 0;
int nxt = n;
for(int i = 0; i < k; ++i){
if(L[i] <= pos_a && pos_a <= R[i]){
freq += X[i];
if(pos_a + 1 <= R[i]) nxt = pos_a + 1;
} else if(pos_a < L[i]) nxt = min(nxt, L[i]);
}
freq -= x;
if(!freq) b = arr[nxt - 1];
}
int ans = a + b;
if(ans & 1) cout << (ans >> 1) << ".5\n";
else cout << (ans >> 1) << '\n';
for(int i = 0; i < k; ++i)
ST.update(-X[i], L[i], R[i], 1, n);
}
}
Iy8qKgoqIEF1dGhvcjogSm9yZ2UgUmF1bCBUemFiIExvcGV6CiogR2l0aHViOiBodHRwczovL2cuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmIuY29tL1NKTUExMTcyMwoqLwoKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgcGFpcjxpbnQsIGludD4gcGlpOwp0eXBlZGVmIHBhaXI8bGwsIGxsPiBwbGw7CnR5cGVkZWYgdmVjdG9yPGludD4gdmk7CnR5cGVkZWYgdmVjdG9yPGxsPiB2bGw7CnR5cGVkZWYgdmVjdG9yPHBpaT4gdnBpaTsKdHlwZWRlZiB2ZWN0b3I8cGxsPiB2cGxsOwoKI2RlZmluZSBhbGwoeCkgKHgpLmJlZ2luKCksICh4KS5lbmQoKQojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgc3ooeCkgKGludCkoeCkuc2l6ZSgpCiNkZWZpbmUgTUFYSyA1MDAwMDAKCmNvbnN0IGxsIE1PRCA9IDFlOSArIDc7CgpzdHJ1Y3Qgc2VnbWVudF90cmVlewogICAgc3RydWN0IG5vZGV7CiAgICAgICAgbGwgdmFsLCBsYXp5OwogICAgICAgIG5vZGUoKTogdmFsKDApLCBsYXp5KDApe30KICAgIH07CiAgICB2ZWN0b3I8bm9kZT4gbm9kZXM7CiAgICBzZWdtZW50X3RyZWUoaW50IG4pewogICAgICAgIG5vZGVzLnJlc2l6ZSg0ICogbiArIDEpOwogICAgfQoKICAgIHZvaWQgY29tYmluZV9seihsbCBseiwgaW50IHBvcyl7CiAgICAgICAgbm9kZXNbcG9zXS5sYXp5ICs9IGx6OwogICAgfQoKICAgIHZvaWQgYXBwbHlfbHooaW50IHBvcywgaW50IHRhbSl7CiAgICAgICAgbm9kZXNbcG9zXS52YWwgKz0gbm9kZXNbcG9zXS5sYXp5ICogdGFtOwogICAgICAgIG5vZGVzW3Bvc10ubGF6eSA9IDA7CiAgICB9CgogICAgdm9pZCBwdXNoX2x6KGludCBwb3MsIGludCBsZWZ0LCBpbnQgcmlnaHQpewogICAgICAgIGludCBsZW4gPSByaWdodCAtIGxlZnQgKyAxOwogICAgICAgIGlmKDEgPCBsZW4pewogICAgICAgICAgICBjb21iaW5lX2x6KG5vZGVzW3Bvc10ubGF6eSwgcG9zICogMik7CiAgICAgICAgICAgIGNvbWJpbmVfbHoobm9kZXNbcG9zXS5sYXp5LCBwb3MgKiAyICsgMSk7CiAgICAgICAgfQogICAgICAgIGFwcGx5X2x6KHBvcywgbGVuKTsKICAgIH0KCiAgICB2b2lkIHVwZGF0ZShpbnQgeCwgaW50IGwsIGludCByLCBpbnQgbGVmdCwgaW50IHJpZ2h0LCBpbnQgcG9zID0gMSl7CiAgICAgICAgcHVzaF9seihwb3MsIGxlZnQsIHJpZ2h0KTsKICAgICAgICBpZihyIDwgbGVmdCB8fCByaWdodCA8IGwpIHJldHVybjsKICAgICAgICBpZihsIDw9IGxlZnQgJiYgcmlnaHQgPD0gcil7CiAgICAgICAgICAgIGNvbWJpbmVfbHooeCwgcG9zKTsKICAgICAgICAgICAgcHVzaF9seihwb3MsIGxlZnQsIHJpZ2h0KTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBpbnQgbWlkID0gKGxlZnQgKyByaWdodCkgLyAyOwogICAgICAgIHVwZGF0ZSh4LCBsLCByLCBsZWZ0LCBtaWQsIHBvcyAqIDIpOwogICAgICAgIHVwZGF0ZSh4LCBsLCByLCBtaWQgKyAxLCByaWdodCwgcG9zICogMiArIDEpOwogICAgICAgIG5vZGVzW3Bvc10udmFsID0gbm9kZXNbcG9zICogMl0udmFsICsgbm9kZXNbcG9zICogMiArIDFdLnZhbDsKICAgIH0KCiAgICBpbnQgcXVlcnkobGwgJngsIGludCBsZWZ0LCBpbnQgcmlnaHQsIGludCBwb3MgPSAxKXsKICAgICAgICBwdXNoX2x6KHBvcywgbGVmdCwgcmlnaHQpOwogICAgICAgIGlmKGxlZnQgPT0gcmlnaHQpIHJldHVybiBsZWZ0OwogICAgICAgIGludCBtaWQgPSAobGVmdCArIHJpZ2h0KSAvIDI7CiAgICAgICAgcHVzaF9seihwb3MgKiAyLCBsZWZ0LCBtaWQpOwogICAgICAgIGlmKG5vZGVzW3BvcyAqIDJdLnZhbCA+PSB4KSByZXR1cm4gcXVlcnkoeCwgbGVmdCwgbWlkLCBwb3MgKiAyKTsKICAgICAgICB4IC09IG5vZGVzW3BvcyAqIDJdLnZhbDsKICAgICAgICByZXR1cm4gcXVlcnkoeCwgbWlkICsgMSwgcmlnaHQsIHBvcyAqIDIgKyAxKTsKICAgIH0KfTsKCmludCBtYWluKCl7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKICAgIGNvdXQudGllKDApOwogICAgaW50IG4sIHE7IGNpbiA+PiBuID4+IHE7CiAgICBpbnQgYXJyW25dOwogICAgZm9yKGludCAmeCA6IGFycikgY2luID4+IHg7CgogICAgc2VnbWVudF90cmVlIFNUKG4pOwogICAgaW50IExbTUFYSyArIDFdLCBSW01BWEsgKyAxXSwgWFtNQVhLICsgMV07CiAgICB3aGlsZShxLS0pewogICAgICAgIGludCBrOyBjaW4gPj4gazsgICAgICAgIAogICAgICAgIGxsIE4gPSAwOwogICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBrOyArK2kpewogICAgICAgICAgICBjaW4gPj4gTFtpXSA+PiBSW2ldID4+IFhbaV07CiAgICAgICAgICAgIFNULnVwZGF0ZShYW2ldLCBMW2ldLCBSW2ldLCAxLCBuKTsKICAgICAgICAgICAgTiArPSAxbGwgKiBYW2ldICogKFJbaV0gLSBMW2ldICsgMSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGxsIHggPSAoTiA+PiAxKSArIDE7CiAgICAgICAgaWYoIShOICYgMSkpIHgtLTsKICAgICAgICBpbnQgcG9zX2EgPSBTVC5xdWVyeSh4LCAxLCBuKTsKICAgICAgICBpbnQgYSA9IGFycltwb3NfYSAtIDFdLCBiID0gYTsKICAgICAgICBpZighKE4gJiAxKSl7CiAgICAgICAgICAgIGxsIGZyZXEgPSAwOwogICAgICAgICAgICBpbnQgbnh0ID0gbjsKICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGs7ICsraSl7CiAgICAgICAgICAgICAgICBpZihMW2ldIDw9IHBvc19hICYmIHBvc19hIDw9IFJbaV0pewogICAgICAgICAgICAgICAgICAgIGZyZXEgKz0gWFtpXTsKICAgICAgICAgICAgICAgICAgICBpZihwb3NfYSArIDEgPD0gUltpXSkgbnh0ID0gcG9zX2EgKyAxOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmKHBvc19hIDwgTFtpXSkgbnh0ID0gbWluKG54dCwgTFtpXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnJlcSAtPSB4OwogICAgICAgICAgICBpZighZnJlcSkgYiA9IGFycltueHQgLSAxXTsKICAgICAgICB9CgogICAgICAgIGludCBhbnMgPSBhICsgYjsKICAgICAgICBpZihhbnMgJiAxKSBjb3V0IDw8IChhbnMgPj4gMSkgPDwgIi41XG4iOwogICAgICAgIGVsc2UgY291dCA8PCAoYW5zID4+IDEpIDw8ICdcbic7CgogICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBrOyArK2kpCiAgICAgICAgICAgIFNULnVwZGF0ZSgtWFtpXSwgTFtpXSwgUltpXSwgMSwgbik7CiAgICB9Cn0=