#include <iostream>
using namespace std;
int main(){
 
  int small[1000][1000]={};
  int a[1000],b[1000],n,m,i,j;
 
  cin>>n>>m;
  for(i=0;i<n;i++) cin>>a[i];
  for(i=0;i<m;i++) cin>>b[i];
  small[0][0]=a[0]*b[0];
  for(i=1;i<m;i++) small[0][i]=min(a[0]*b[i],small[0][i-1]);
  for(i=1;i<n;i++) for(j=i;j<m;j++){
      small[i][j]=small[i-1][j-1]+a[i]*b[j];
      if(i!=j) small[i][j]=min(small[i][j],small[i][j-1]);
    }
  cout<<small[n-1][m-1]<<endl;
  return 0;
}