#include <bits/stdc++.h>
using namespace std;
int A[300010];
long long best[5010][5010];
int main() {
  int N, K, x, y, lx, ly;
  int hop;
  scanf("%d%d", &N, &K);
  for (int i = (0); i < (N); i++) scanf("%d", A + i);
  sort(A, A + N);
  x = N % K;
  y = K - x;
  ly = N / K;
  lx = ly + 1;
  best[0][0] = 0;
  for (int i = (0); i < (x + 1); i++)
    for (int j = (0); j < (y + 1); j++) {
      if (i == 0 && j == 0) continue;
      best[i][j] = 2000000000000000LL;
      hop = lx * i + ly * j - 1;
      if (i) {
        best[i][j] =
            min(best[i][j], best[i - 1][j] + (A[hop] - A[hop - lx + 1]));
      }
      if (j) {
        best[i][j] =
            min(best[i][j], best[i][j - 1] + (A[hop] - A[hop - ly + 1]));
      }
    }
  printf("%I64d\n", best[x][y]);
  return 0;
}
