/*
TASK:books
LANG:C++
*/

#include <stdio.h>

#define N 256
#define K 128

typedef long long llong;

int n,k;
llong s[N];
llong d[N];
llong tbl[N][N];

void readf()
{
    int i;
    scanf("%d %d",&n,&k);
    for(i=0; i<n; i++) scanf("%lld",s+i);
    for(i=0; i<n; i++) scanf("%lld",d+i);
}

void solve()
{
    int i,j,l;
    llong sm;
    tbl[0][0]=s[0]*d[0];
    for(i=1; i<n; i++) tbl[0][i]=s[i]*d[i]+tbl[0][i-1];
    for(i=1; i<k; i++)
    {
	tbl[i][0]=s[0]*d[0];
    	for(j=1; j<n; j++) tbl[i][j]=s[j]*d[j]+tbl[i][j-1];
	for(j=1; j<n; j++)
	{
	    sm=0;
	    if(j) sm+=tbl[i-1][j-1];
	    for(l=j; l<n; l++)
	    {
		sm+=s[l]*d[l-j];
		if(tbl[i][l]>sm) tbl[i][l]=sm;
	    }
	}
    }
}

int main()
{
    readf();
    solve();
    printf("%lld\n",tbl[k-1][n-1]);
    return 0;
}

