import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Random;
import java.util.StringTokenizer;

public class Marathon {

    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        StringTokenizer tk = new StringTokenizer(br.readLine());
        int N = Integer.parseInt(tk.nextToken());
        int K = Integer.parseInt(tk.nextToken());

        int[] booths = new int[N];

        tk = new StringTokenizer(br.readLine());
        for (int i = 0; i < N; i++) {
            booths[i] = Integer.parseInt(tk.nextToken());
        }

        if (N == 1) {
            System.out.println(0);
            return;
        }

        Arrays.sort(booths);
        int min = booths[0];

        for (int i = 0; i < booths.length; i++) {
            booths[i] -= min;
        }



        int[] diffs = new int[N - 1];
        for (int i = 0; i < diffs.length; i++) {
            diffs[i] = booths[i + 1] - booths[i];
        }

        int[] diffSumsL = new int[N];
        int[] diffSumsR = new int[N];

        for (int i = 1; i < diffSumsL.length; i++) {
            diffSumsL[i] = diffSumsL[i - 1] + Math.abs(diffs[i - 1] - K) * i;
        }

        for (int i = diffSumsR.length - 2; i >= 0; i--) {
            diffSumsR[i] = diffSumsR[i + 1] + Math.abs(diffs[i] - K) * (diffSumsR.length - i - 1);
        }



        min = Integer.MAX_VALUE;
        for (int i = 0; i < diffSumsL.length; i++) {
            int sum = diffSumsL[i] + diffSumsR[i];

            if (sum < min) {
                min = sum;
            }
        }

        System.out.println(min);
    }
}

