#include<bits/stdc++.h>
#define LL long long
#define GG long long
#define For(i, j, k) for(int i=j; i<=k; i++)
#define Dow(i, j, k) for(int i=j; i>=k; i--)
using namespace std;
inline GG read() {
GG x = 0, f = 1;
char ch = getchar();
while(ch<'0'||ch>'9') { if(ch=='-') f = -1; ch = getchar(); }
while(ch>='0'&&ch<='9') { x = x*10+ch-48; ch = getchar(); }
return x * f;
}
int n, k;
int f[2011][2011], h[40011], l[40011];
int len;
int main() {
while(~scanf("%d%d", &n, &k)) {
For(i, 1, n) h[i] = read();
sort(h+1, h+n+1);
f[0][0] = 0;
For(i, 0, n)
For(j, 1, k) f[i][j] = 1e9;
For(i, 2, n)
for(int j=0; j*2<=i; j++)
f[i][j] = min(f[i-1][j], f[i-2][j-1]+(h[i-1]-h[i])*(h[i-1]-h[i]));
printf("%d\n", f[n][k]);
}
return 0;
}