/*
TASK: BOOKS
LANG: C
*/
#include<stdio.h>
#define type long long
#define mx 256
#define maxx 1999999999999999999ll
#define in stdin;//fopen("c:\\a\\books.in","r")
FILE*fn;
type ss[mx][mx];
type s[mx][mx];
type sites[mx];
type dollars[mx];
int q1,q2,q3,c,m;
type c1,c2,c3,c4;
int main()
  {fn=in;
  fscanf(fn,"%d %d",&c,&m);
  for(q1=1;q1<=c;q1++)fscanf(fn,"%lld",&sites[q1]);  ///long long
  for(q1=1;q1<=c;q1++)fscanf(fn,"%lld",&dollars[q1]);  ///long long
  fclose(fn);
  for(q1=1;q1<=c;q1++)for(q2=q1;q2<=c;q2++)
    {
    c1=0;
    for(q3=q1;q3<=q2;q3++)
      c1+=dollars[q3-q1+1]*sites[q3];
    s[q1][q2]=c1;
    }
  for(q1=1;q1<=c;q1++)ss[0][q1]=maxx;
  for(q1=1;q1<=m;q1++)for(q2=1;q2<=c;q2++)
    {
    ss[q1][q2]=maxx;
    for(q3=0;q3<=q2;q3++)
      {c1=s[q2-q3+1][q2];
      if(c1+ss[q1-1][q2-q3]<ss[q1][q2])
	ss[q1][q2]=c1+ss[q1-1][q2-q3];
      }
    }
  printf("%lld\n",ss[m][c]);
//  printf("%lld\n",ss[0][1]);
  return 0;}
