#include <bits/stdc++.h>
using namespace std;
const int maxn=1005;
int d[maxn],c[maxn];
int dp[maxn][maxn];
int main()
{
int n,m;
cin>>n>>m;
memset(dp,0x7f,sizeof(dp));
for(int i=0;i<=m;i++)
{
dp[i][0]=0;
}
for(int i=1;i<=n;i++)
{
cin>>d[i];
}
for(int i=1;i<=m;i++)
{
cin>>c[i];
}
for(int i=1;i<=n;i++)
{
for(int j=i;j<=m;j++)
{
dp[i][j]=min(dp[i-1][j],dp[i-1][j-1])+d[i]*c[j];
}
}
cout<<dp[n][m];
return 0;
}