#include <bits/stdc++.h>
#define ll long long
#define el cout << '\n'
using namespace std;
const int maxn = 3e3;
const int maxk = 3e3;
const ll INF = 1e18;
int n, k;
ll pre[maxn + 10], dp[maxn + 10][maxk + 10];
ll f(int i, int j, int k)
{
return dp[k][j] + (pre[i] - pre[k]) * (pre[i] - pre[k]);
}
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
if (fopen("SQUARE.INP", "r"))
{
freopen("SQUARE.INP", "r", stdin);
freopen("SQUARE.OUT", "w", stdout);
}
cin >> n >> k;
pre[0] = 0;
for (int i = 1; i <= n; i++)
{
ll x;
cin >> x;
pre[i] = pre[i - 1] + x;
}
for (int i = 1; i <= n; i++)
for (int j = 0; j <= k; j++)
dp[i][j] = INF;
for (int i = 1; i <= n; i++)
dp[i][1] = pre[i] * pre[i];
for (int j = 2; j <= k; j++)
{
for (int i = 1; i <= n; i++)
{
// for (int k = 1; k <= i; k++)
// dp[i][j] = min(dp[i][j], f(i, j - 1, k - 1));
int l = 1, r = i;
ll ans = 0;
while (l <= r)
{
int m = l + r >> 1;
if (f(i, j - 1, m - 1) <= f(i, j - 1, m))
{
ans = f(i, j - 1, m - 1);
r = m - 1;
}
else
{
ans = f(i, j - 1, m);
l = m + 1;
}
}
dp[i][j] = ans;
}
}
cout << dp[n][k];
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CgojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGVsIGNvdXQgPDwgJ1xuJwoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCBtYXhuID0gM2UzOwpjb25zdCBpbnQgbWF4ayA9IDNlMzsKY29uc3QgbGwgSU5GID0gMWUxODsKCmludCBuLCBrOwpsbCBwcmVbbWF4biArIDEwXSwgZHBbbWF4biArIDEwXVttYXhrICsgMTBdOwoKbGwgZihpbnQgaSwgaW50IGosIGludCBrKQp7CiAgICByZXR1cm4gZHBba11bal0gKyAocHJlW2ldIC0gcHJlW2tdKSAqIChwcmVbaV0gLSBwcmVba10pOyAKfQoKaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKICAgIGlmIChmb3BlbigiU1FVQVJFLklOUCIsICJyIikpCiAgICB7CiAgICAgICAgZnJlb3BlbigiU1FVQVJFLklOUCIsICJyIiwgc3RkaW4pOwogICAgICAgIGZyZW9wZW4oIlNRVUFSRS5PVVQiLCAidyIsIHN0ZG91dCk7CiAgICB9CgogICAgY2luID4+IG4gPj4gazsKICAgIHByZVswXSA9IDA7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspCiAgICB7CiAgICAgICAgbGwgeDsKICAgICAgICBjaW4gPj4geDsKICAgICAgICBwcmVbaV0gPSBwcmVbaSAtIDFdICsgeDsKICAgIH0KICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8PSBrOyBqKyspCiAgICAgICAgICAgIGRwW2ldW2pdID0gSU5GOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKQogICAgICAgIGRwW2ldWzFdID0gcHJlW2ldICogcHJlW2ldOwogICAgZm9yIChpbnQgaiA9IDI7IGogPD0gazsgaisrKQogICAgewogICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykKICAgICAgICB7CiAgICAgICAgICAgIC8vIGZvciAoaW50IGsgPSAxOyBrIDw9IGk7IGsrKykKICAgICAgICAgICAgLy8gICAgIGRwW2ldW2pdID0gbWluKGRwW2ldW2pdLCBmKGksIGogLSAxLCBrIC0gMSkpOwogICAgICAgICAgICBpbnQgbCA9IDEsIHIgPSBpOwogICAgICAgICAgICBsbCBhbnMgPSAwOwogICAgICAgICAgICB3aGlsZSAobCA8PSByKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpbnQgbSA9IGwgKyByID4+IDE7CiAgICAgICAgICAgICAgICBpZiAoZihpLCBqIC0gMSwgbSAtIDEpIDw9IGYoaSwgaiAtIDEsIG0pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGFucyA9IGYoaSwgaiAtIDEsIG0gLSAxKTsKICAgICAgICAgICAgICAgICAgICByID0gbSAtIDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgYW5zID0gZihpLCBqIC0gMSwgbSk7CiAgICAgICAgICAgICAgICAgICAgbCA9IG0gKyAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGRwW2ldW2pdID0gYW5zOwogICAgICAgIH0KICAgIH0KICAgIGNvdXQgPDwgZHBbbl1ba107Cn0=