/*
LANG:C
TASK:BOOKS
*/
#include<stdio.h>

#define MAXN 256
#define BIG  1000000000000000000

unsigned long long cash[MAXN][MAXN];
unsigned long long tax[MAXN][MAXN];
unsigned long long pages[MAXN];
unsigned long long pay[MAXN];
int N,K;

int main()
{   int i,j,k,min;
    //freopen("BOOKS.txt","r",stdin);
    scanf("%d %d",&N,&K);
    if (K>N) K=N;
    
    for (i=1;i<=N;i++)
        scanf("%llu",&pages[i]);
    for (i=1;i<=N;i++)
        scanf("%llu",&pay[i]);
    for (i=1;i<=N;i++)
        tax[i][i]=pages[i]*pay[1];
    for (i=1;i<=N;i++)
        for (j=i+1;j<=N;j++)
            tax[i][j]=tax[i][j-1]+pages[j]*pay[j-i+1];
    
    for (i=1;i<=N;i++)
        cash[1][i]=tax[1][i];
    
    for (i=2;i<=K;i++)
        for (j=i;j<=N;j++)
        {   cash[i][j]=cash[i-1][i-1]+tax[i][j];
            for (k=i+1;k<=j;k++)
                if (cash[i][j]>(cash[i-1][k-1]+tax[k][j]))
                   cash[i][j]=cash[i-1][k-1]+tax[k][j];
        }
    
    cash[0][0]=cash[1][N];
    for (i=2;i<=K;i++)
        if (cash[0][0]>cash[i][N])
           cash[0][0]=cash[i][N];
    
    printf("%llu\n",cash[0][0]);
        
    return 0;
}
