#include <iostream>
#include <cmath>
#include <vector>
#include <algorithm>
using namespace std;
long long n, s, p[1000005], res;
struct in{
    long long v, ind;
    bool t=false;
};
bool sor1(in a, in b){
    return a.v>b.v;
}
bool sor2(in a, in b){
    return a.v<b.v;
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
cin>>n>>s;
vector <in> q1;
vector <in> q2;
for(long long i=0;i<n;i++){
    cin>>p[i];
}
for(long long i=0;i<n;i++){
    q1.push_back({p[i]-s*i, i});
    sort(q1.begin(), q1.end(), sor1);
    q2.push_back({p[i]-s*i, i});
    sort(q1.begin(), q1.end(), sor2);
}
for(long long i=0;i<n;i++){
    for(long long j=0;j<q1.size();j++){
        if(q2[i].ind<q1[j].ind and q2[i].t==false and !q1[j].t){
            q1[j].t=true;
            q2[i].t=true;
            res=res+q1[j]-q2[i];
            break;
        }
    }
}
cout<<res;
return 0;
}
