#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,a[2000010],pre[2000010];
int dp[5010][5010];
signed main(){
int op;
cin>>n>>op;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++) pre[i]=pre[i-1]+a[i];
memset(dp,0x3f,sizeof(dp));
for(int i=1;i<=n;i++) dp[i][0]=pow(pre[i],2);
for(int j=0;j<n;j++){
int k=j-1;
int minn=LONG_LONG_MAX/2;
for(int i=j+1;i<=n;i++){
int num=(int)pow(pre[i]-pre[j],2ll);
while(pre[j]*2<=pre[i]+pre[k]){
minn=min(minn,dp[j][k]);
if(k==0) break;
k--;
}
dp[i][j]=min(dp[i][j],minn+num);
}
}
int maxn=LONG_LONG_MAX;
for(int i=0;i<=n;i++){
maxn=min(maxn,dp[n][i]);
}
cout<<maxn;
return 0;
}