#include <bits/stdc++.h>
using namespace std;
int mas[300100];
long long dp[5010][5010];
int ml;
int n, d, e;
long long ret;
long long doit(int b, int s) {
  int pos = b * (ml + 1) + s * ml;
  if (pos == n) return 0;
  long long &res = dp[b][s];
  if (res == -1) {
    res = 1e18;
    if (b < d) res = mas[pos + ml] - mas[pos] + doit(b + 1, s);
    if (s < e) {
      long long ret = mas[pos + ml - 1] - mas[pos] + doit(b, s + 1);
      res = min(res, ret);
    }
  }
  return res;
}
void Solve() {
  int i, j, k, m;
  scanf("%d%d", &(n), &(k));
  for (i = 0; i < n; i++) scanf("%d", &(mas[i]));
  sort(mas, mas + n);
  d = n % k;
  e = k - d;
  ml = n / k;
  memset(dp, -1, sizeof(dp));
  printf("%I64d", doit(0, 0));
}
int main() {
  Solve();
  return 0;
}
