#include <bits/stdc++.h>
using namespace std;
#define int long long
const int _ = 2e4 + 10, inf = 2e18;
int n, k, d[_], c[_], s[_], w[_];
int st[_], ed[_];
vector<int> D[_];
int tr[_ << 2], tag[_ << 2];
int f[_];
void build(int o, int l, int r)
{
tag[o] = 0;
if(l == r)
{
tr[o] = f[l];
return;
}
int mid = (l + r) >> 1;
build(o << 1, l, mid);
build(o << 1 | 1, mid + 1, r);
tr[o] = min(tr[o << 1], tr[o << 1 | 1]);
}
void update(int o, int l, int r, int L, int R, int val)
{
if(L > R) return;
if(L <= l && r <= R)
{
tr[o] += val, tag[o] += val;
return;