/*
TASK: bus
LANG: C++
*/

#include <cstdio>
#include <cstdlib>
#include <memory.h>
#include <algorithm>
#include <cmath>
using namespace std;

const int MAX_N = 1000+5;

int n, k;
int A[MAX_N];
int V[MAX_N];

int ans = 1000000000;

void input ()
{
 	 int i;
 	 
 	 scanf ("%d%d", &n, &k);
 	 
 	 k = min(k,n);

	 for (i=1; i<=n; i++)
	 	 scanf ("%d", &A[i]);
}

void solve ()
{
	int i, j, pos=1000000, curr=0;
	
	memset (V,0,sizeof(V));
	
	V[1] = 1;
	V[n] = 1;
	
	for (i=2; i<k; i++) {
		for (j=rand()%n; ; j=(j+1)%n)
			if (!V[j]) {
				V[j]=1;
				break;
			}
	}
	
	for (i=1; i<=n; i++) {
		for (j=1; j<=n; j++)
			if (V[j] && abs(i-j)<abs(i-pos))
				pos = j;
		curr += abs(i-pos)*A[i];
	}
	
	ans = min(ans,curr);
}

int main ()
{
 	input ();
 	
 	time_t start = clock();
 	
 	while ( clock()-start < 0.6*CLOCKS_PER_SEC )
	 	solve ();
	 	
	printf ("%d\n", ans);
	
    return 0;
}
