/*
TASK:books
LANG:C++
*/
#include <stdio.h>
#define min(a,b) (a<b?a:b)
#define maxvalue 999999999
#define maxn 206
#define maxk 106

long long books[maxn];
long long cost[maxk];
long long F[maxn][maxk];
int n,k;

void init() {
     scanf("%d%d",&n,&k);
     for(int i=1;i<=n;i++) scanf("%lld",&books[i]);
     for(int j=1;j<=n;j++) scanf("%lld",&cost[j]);
     F[0][0] = 0;
     for(int i=1;i<=n;i++) for(int j=1;j<=k;j++) F[i][j] = -1;
     for(int i=1;i<=n;i++) F[i][1] = F[i-1][1] + books[i]*cost[i];
}

long long solve(int n,int k) {
     if(F[n][k]!=-1) return F[n][k];
     if(n == 0) return 0;
     long long minn = maxvalue;
     minn = min(minn,solve(n,k-1));
     
     long long sum = 0;
     for(int i=n;i>0;i--) {
             sum = 0;
             for(int t=i;t<=n;t++)
                sum += books[t] * cost[t-i+1];
             minn = min(minn,sum + solve(i-1,k-1));
     }
     return F[n][k] = minn;
}

int main() {
    init();
    printf("%lld\n",solve(n,k));
    return 0;
}
