import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class Marathon {

    public static int N;
    public static int K;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        ArrayList<Integer> booths = new ArrayList<Integer>();
        N = sc.nextInt();
        K = sc.nextInt();

        for (int i = 0; i < N; i++) {
            booths.add(sc.nextInt());
        }

        Collections.sort(booths);

        int median = -1;
        int iMedian = -1;
        int median2 = -1;
        int iMedian2 = -1;
        if (booths.size() % 2 == 0) {
            iMedian = (booths.size() - 1) / 2;
            median = booths.get(iMedian);
            iMedian2 = ((booths.size() - 1) / 2) + 1;
            median2 = booths.get(iMedian2);
        } else {
            iMedian = booths.size() / 2;
            median = booths.get(iMedian);
        }

        long min = arange((ArrayList<Integer>) booths.clone(), iMedian);
        if (iMedian2 != -1) {
            min = Math.min(arange((ArrayList<Integer>) booths.clone(), iMedian2), min);

            int avg = (median + median2) / 2;

            ArrayList<Integer> left = (ArrayList<Integer>) booths.clone();
            left.set(iMedian, avg);
            min = Math.min(arange(left, iMedian) + Math.abs(median - avg), min);

            booths.set(iMedian2, avg);
            min = Math.min(arange(booths, iMedian2) + Math.abs(median2 - avg), min);
        }

        System.out.println(min);
    }

    //bacha na velkost
    public static long arange(ArrayList<Integer> ar, int iMedian) {
        long sumDistance = 0;
        for (int i = 1; i <= N / 2; i++) {
            int prev = iMedian - i;
            int next = iMedian + i;

            if (prev >= 0) {
                int b1 = ar.get(prev);
                int b2 = ar.get(prev + 1);
                int nB1 = b2 - K;
                ar.set(prev, nB1);
                sumDistance += Math.abs(nB1 - b1);
            }

            if (next < ar.size()) {
                int b1 = ar.get(next - 1);
                int b2 = ar.get(next);
                int nB2 = b1 + K;
                ar.set(next, nB2);
                sumDistance += Math.abs(b2 - nB2);
            }
        }

        return sumDistance;
    }

}

