#include <cstdio>
#include <algorithm>
using namespace std;

int n, m;
int d[1000];
int c[1000];
int dp[1100][1100];
const int INF = 1001001000;

int main(){
	scanf("%d %d", &n, &m);
	for(int i=0; i<n; i++)
		scanf("%d", &d[i]);
	for(int i=0; i<m; i++)
		scanf("%d", &c[i]);

	for(int i=0; i<1000; i++)
		for(int j=0; j<1000; j++)
			dp[i][j] = INF;

	dp[0][0] = 0;
	dp[0][1] = d[0]*c[0];
	for(int i=1; i<m; i++){
		for(int j=0; j<n+1; j++){
			if(j == 0){
				dp[i][j] = dp[i-1][j];
			}else{
				dp[i][j] = min(dp[i-1][j], dp[i-1][j-1] + d[j-1] * c[i]);
			}
		}
	}
	int ans = INF;
	for(int i=0; i<m; i++){
		ans = min(ans, dp[i][n]);
	}
	printf("%d\n", ans);
	return 0;
}