{
TASK:BOOKS
LANG:Pascal
}
const
   MaxN = 200;
   MAxK = 100;
var

   a : array[1..MaxN] of int64;
   d : array[1..Maxk] of int64;
   n,k : longint;
procedure readfile;
var
   f : text;
   i : longint;
begin
   readln(n,k);
   for i:=1 to n-1 do read(a[i]);
   readln(a[n]);
   for i:=1 to n-1 do read(d[i]);
   readln(d[n]);
end;
procedure solve;
var
   s : array[0..MaxN,0..MaxK] of int64;
   b : array[0..MaxN] of int64;
   i,j,p : longint;
begin
   fillchar(s,(1+MaxN)*(MaxK+1)*4,127);
   s[1,0]:=0;
   for i:=1 to n do
      s[1,i]:=s[1,i-1]+d[i]*a[i];
   for i:=2 to k do
      begin
         for p:=i to n do
            begin
               b[p-1]:=s[i-1,p-1];
               for j:=p to n do
                  b[j]:=b[j-1] + d[j-p+1]*a[j];
               for j:=1 to n do
                  if s[i,j]>b[j] then
                     s[i,j]:=b[j];
            end;
      end;

   writeln(s[k,n]);
end;

begin
   readfile;
   solve;
end.
