#include <bits/stdc++.h>
using namespace std;
const long long oo = 1e18 + 7;
int n, k;
long long a[1005];
namespace sub1 {
long long pre[1005];
void SOLVE() {
long long ans = oo;
for (int i = 1; i <= n; i++) pre[i] = pre[i - 1] + a[i];
for (int l = 1; l <= n; l++) {
for (int r = l; r <= n; r++) {
long long res1 = pre[r] - pre[l - 1];
long long res2 = pre[n] - res1;
ans = min(ans, res1 * res1 + res2 * res2);
}
}
cout << ans << '\n';
}
}
namespace sub2345 {
int pos[505];
long long pre[505];
long long dp[505][505];
long long bp(long long sum) {
return sum * sum;
}
long long solve() {
for (int i = 0; i <= n; i++)
for (int j = 0; j <= k; j++) dp[i][j] = oo;
for (int i = 0; i <= k; i++) pos[i] = 0;
dp[0][0] = 0;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= min(i, k); j++) {
while (pos[j - 1] + 1 <= i - 1 && dp[pos[j - 1]][j - 1] + bp(pre[i] - pre[pos[j - 1]]) >= dp[pos[j - 1] + 1][j - 1] + bp(pre[i] - pre[pos[j - 1] + 1])) pos[j - 1]++;
dp[i][j] = min(dp[i][j], dp[pos[j - 1]][j - 1] + bp(pre[i] - pre[pos[j - 1]]));
}
}
return dp[n][k];
}
void SOLVE() {
long long ans = oo;
for (int i = 1; i <= n; i++) {
a[0] = a[1];
for (int j = 1; j < n; j++) a[j] = a[j + 1];
a[n] = a[0];
for (int j = 1; j <= n; j++) pre[j] = pre[j - 1] + a[j];
ans = min(ans, solve());
}
cout << ans << '\n';
}
}
main() {
ios_base::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
cin >> n >> k;
for (int i = 1; i <= n; i++) cin >> a[i];
if (k == 2) sub1::SOLVE();
else sub2345::SOLVE();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGxvbmcgbG9uZyBvbyA9IDFlMTggKyA3OwppbnQgbiwgazsKbG9uZyBsb25nIGFbMTAwNV07CgpuYW1lc3BhY2Ugc3ViMSB7CgogICAgbG9uZyBsb25nIHByZVsxMDA1XTsKCiAgICB2b2lkIFNPTFZFKCkgewoKICAgICAgICBsb25nIGxvbmcgYW5zID0gb287CiAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBwcmVbaV0gPSBwcmVbaSAtIDFdICsgYVtpXTsKICAgICAgICBmb3IgKGludCBsID0gMTsgbCA8PSBuOyBsKyspIHsKICAgICAgICAgICAgZm9yIChpbnQgciA9IGw7IHIgPD0gbjsgcisrKSB7CiAgICAgICAgICAgICAgICBsb25nIGxvbmcgcmVzMSA9IHByZVtyXSAtIHByZVtsIC0gMV07CiAgICAgICAgICAgICAgICBsb25nIGxvbmcgcmVzMiA9IHByZVtuXSAtIHJlczE7CiAgICAgICAgICAgICAgICBhbnMgPSBtaW4oYW5zLCByZXMxICogcmVzMSArIHJlczIgKiByZXMyKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgY291dCA8PCBhbnMgPDwgJ1xuJzsKCiAgICB9Cgp9CgpuYW1lc3BhY2Ugc3ViMjM0NSB7CgogICAgaW50IHBvc1s1MDVdOwogICAgbG9uZyBsb25nIHByZVs1MDVdOwogICAgbG9uZyBsb25nIGRwWzUwNV1bNTA1XTsKCiAgICBsb25nIGxvbmcgYnAobG9uZyBsb25nIHN1bSkgewogICAgICAgIHJldHVybiBzdW0gKiBzdW07CiAgICB9CgogICAgbG9uZyBsb25nIHNvbHZlKCkgewogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IG47IGkrKykKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8PSBrOyBqKyspIGRwW2ldW2pdID0gb287CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gazsgaSsrKSBwb3NbaV0gPSAwOwogICAgICAgIGRwWzBdWzBdID0gMDsKICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKICAgICAgICAgICAgZm9yIChpbnQgaiA9IDE7IGogPD0gbWluKGksIGspOyBqKyspIHsKICAgICAgICAgICAgICAgIHdoaWxlIChwb3NbaiAtIDFdICsgMSA8PSBpIC0gMSAmJiBkcFtwb3NbaiAtIDFdXVtqIC0gMV0gKyBicChwcmVbaV0gLSBwcmVbcG9zW2ogLSAxXV0pID49IGRwW3Bvc1tqIC0gMV0gKyAxXVtqIC0gMV0gKyBicChwcmVbaV0gLSBwcmVbcG9zW2ogLSAxXSArIDFdKSkgcG9zW2ogLSAxXSsrOwogICAgICAgICAgICAgICAgZHBbaV1bal0gPSBtaW4oZHBbaV1bal0sIGRwW3Bvc1tqIC0gMV1dW2ogLSAxXSArIGJwKHByZVtpXSAtIHByZVtwb3NbaiAtIDFdXSkpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBkcFtuXVtrXTsKICAgIH0KCiAgICB2b2lkIFNPTFZFKCkgewoKICAgICAgICBsb25nIGxvbmcgYW5zID0gb287CiAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgICAgIGFbMF0gPSBhWzFdOwogICAgICAgICAgICBmb3IgKGludCBqID0gMTsgaiA8IG47IGorKykgYVtqXSA9IGFbaiArIDFdOwogICAgICAgICAgICBhW25dID0gYVswXTsKICAgICAgICAgICAgZm9yIChpbnQgaiA9IDE7IGogPD0gbjsgaisrKSBwcmVbal0gPSBwcmVbaiAtIDFdICsgYVtqXTsKICAgICAgICAgICAgYW5zID0gbWluKGFucywgc29sdmUoKSk7CiAgICAgICAgfQoKICAgICAgICBjb3V0IDw8IGFucyA8PCAnXG4nOwoKICAgIH0KCn0KCm1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoMCk7IGNvdXQudGllKDApOwogICAgY2luID4+IG4gPj4gazsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgY2luID4+IGFbaV07CgogICAgaWYgKGsgPT0gMikgc3ViMTo6U09MVkUoKTsKICAgIGVsc2Ugc3ViMjM0NTo6U09MVkUoKTsKCiAgICByZXR1cm4gMDsKfQo=