#include "boxes.h"
#include "bits/stdc++.h"
using namespace std;
#define ll long long
const ll INF=1e18;
ll NC;
ll LC;
ll KC;
ll cost(ll a,ll b){
return min(abs(a-b),abs(max(a,b)-(min(a,b)+LC)));
}
ll C(vector<int>per){
ll NN=(ll)per.size();
ll res=0;
for(int i=0;i<NN;i+=KC){
int l=i,r=min(NN-1,i+KC-1);
int cur=0;
for(int j=l;j<=r;j++){
res+=cost(cur,per[j]);
cur=per[j];
}
res+=cost(0,cur);
}
return res;
}
ll delivery(int N,int K,int L,int p[])
{
NC=N;
LC=L;
KC=K;
ll ans=INF;
vector<int>pos1;
vector<int>pos2;
for(int i=0;i<N;i++) pos1.push_back(p[i]);
for(int i=N-1;i>=0;i--) pos2.push_back(p[i]);
ans=min(ans,C(pos1));
ans=min(ans,C(pos2));
if(K==1) return ans;
for(int i=0;i<N-1;i++){
if(i/K!=(i+1)/K) continue;
vector<int>p1,p2;
for(int j=0;j<=i;j++) p1.push_back(p[j]);
for(int j=i+1;j<N;j++) p2.push_back(p[j]);
ans=min(ans,C(p1)+C(p2));
}
return ans;
}