#include "boxes.h"
#include "bits/stdc++.h"
using namespace std;
long long delivery(int n, int k, int l, int P[]){
long long r = LLONG_MAX, _ltimoi = 0, _ltimod = 0;
vector<int> p;
for(int i = 0; i < n; i++) if(P[i] != 0) p.push_back(P[i]);
n = p.size();
if(n == 0) return 0;
vector<long long> Izquierda(n), Derecha(n);
for(int i = 0; i < n; i++){
Izquierda[i] = (long long)(p[i] + min(p[i], l - p[i])) + _ltimoi;
Derecha[n - i - 1] = (long long)(l - p[n - i - 1] + min(p[n - i - 1], l - p[n - i - 1])) + _ltimod;
if((i + 1) % k == 0){
_ltimoi = Izquierda[i];
_ltimod = Derecha[n - i - 1];
}
}
Derecha.push_back(0);
for(int i = 0; i < n; i++){
r = min(r, Izquierda[i] + Derecha[i + 1]);
cerr<<Izquierda[i]<<" "<<Derecha[i + 1]<<"\n";
}
cerr<<"0 "<<Derecha[0]<<"\n";
r = min(r, Derecha[0]);
cerr<<r;
return r;
}