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


int main(){
    int n, k;

    cin >> n >> k;

    vector<int> stands(n);

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

    sort(stands.begin(), stands.end());

    int s0 = min(stands[0], stands[n - 1] - k * (n - 1));

    vector<int> shifts(n);
    int sh;

    for(int i = 0; i < n; i++){
        sh = stands[i] - s0 - (k * i);
        if(sh < 0){
            shifts[i] = -sh;
        }
        else{
            shifts[i] = sh;
        }
    }

    sort(shifts.begin(), shifts.end());

    int shift = shifts[n / 2];

    int dist = 0;

    for(int i = 0; i < n; i++){
        sh = (s0 + shift + (i * k)) - stands[i];
        if(sh < 0){
            dist += -sh;
        }
        else{
            dist += sh;
        }
    }

    cout << dist << endl;
}
