#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;

int broiDni;
int cenaPrestoi;

int ceniPetrol[1000010];

struct DanniZaPechalba{
    int pechalba;
    int otKoi;
    int doKoi;
};

vector<DanniZaPechalba> pechalbi;

bool koiEPoNapred(DanniZaPechalba a, DanniZaPechalba b){
    return a.pechalba > b.pechalba;
}

bool izpolzvanLiE[1000010];

int main(){

    cin>>broiDni>>cenaPrestoi;

    for(int i = 0; i < broiDni; i++){
        cin>>ceniPetrol[i];
    }

    for(int i = 0; i < broiDni; i++){
        for(int j = i + 1; j < broiDni; j++){
            int tukaPechalba = ceniPetrol[j] - ceniPetrol[i] - (j - i)*cenaPrestoi;

            if(tukaPechalba > 0){
                pechalbi.push_back({tukaPechalba, i, j});
            }
        }
    }

    sort(pechalbi.begin(), pechalbi.end(), koiEPoNapred);

    int specheleno = 0;

    for(int i = 0; i < (int)pechalbi.size(); i++){
        if(izpolzvanLiE[pechalbi[i].otKoi] == false && izpolzvanLiE[pechalbi[i].doKoi] == false){
            specheleno += pechalbi[i].pechalba;
            izpolzvanLiE[pechalbi[i].otKoi] = true;
            izpolzvanLiE[pechalbi[i].doKoi] = true;
        }
    }

    cout<<specheleno<<endl;

    return 0;
}
