#include <bits/stdc++.h>
#pragma GCC optimize("O3")
using namespace std;
const int MaxN = 500005;
int k, n, i, j;
int dp[5][MaxN], t[MaxN], kc[MaxN];
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> k >> n;
  for (i = 0; i < n; i++) cin >> t[i];
  sort(t, t + n);
  for (i = 1; i < n; i++) kc[i] = t[i] - t[i - 1];
  for (i = 0; i <= 2; i++) {
    for (j = 1; j <= k; j++) {
      dp[i][j] = 1e9;
    }
  }
  dp[1][1] = kc[1];
  for (i = 2; i <= n - 1; i++) {
    for (j = 1; j <= min((i + 1) / 2, k); j++) {
      dp[i % 3][j] = min(dp[(i - 1) % 3][j], dp[(i - 2) % 3][j - 1] + kc[i]);
    }
  }
  cout << dp[(n - 1) % 3][k];
}
