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

#include<iostream>
using namespace std;
#define maxn 10
#define min(a, b) (( a < b ) ? a : b)

long long n,k,s[maxn],d[maxn],g[maxn][maxn];

void input()
{
   cin>>n>>k;
   int i;
   for(i=0;i<n;i++)cin>>s[i];
   for(i=0;i<n;i++)cin>>d[i];
};

void calc()
{
    int i,t,j;
    for(i=0;i<n;i++)           //i ->nk
      for(j=i;j<n;j++)              // j -> kk
         for(t=0;t<=(j-i);t++)
             g[i][j]+=s[i+t]*d[t];
};

long f[2][maxn];
    
void solve()
{
    int i,j,pk;
    int c=1,p=0;
    for(i=0;i<n;i++)
      f[p][i]=g[0][i];
    for(i=1;i<=k;i++)
    {
       for(pk=0;pk<i;pk++)f[c][pk]=f[p][pk];
       for(pk=i;pk<n;pk++)
       {
          f[c][pk]=f[p][pk];
          for(j=0;j<pk;j++)
           {
              f[c][pk]=min(f[c][pk],f[p][j]+g[j+1][pk]);
           }
       }
       c=p;
       if(c==1)p=0;
       else p=1;
    }
    cout<<f[c][n-1]<<endl;
};


int main()
{
   input();
   calc();
   solve();
   return 0;
}
