#include using namespace std; typedef pair pii; typedef long long ll; const int N = 2000010, MOD = 1e9 + 7, INF = 0x3f3f3f3f; int n, m, w[N]; int x[N]; ll s[N]; ll f[1024][1024][2]; int main() { scanf("%d%d", &n, &m); for (int i = 1; i < n + 1; i++) scanf("%d", x + i); for (int i = 1; i < n + 1; i++) scanf("%d", w + i), s[i] = s[i - 1] + w[i]; for (int i = 1; i < n + 1; i++) f[i][i][0] = f[i][i][1] = abs(m - x[i]) * s[n]; for (int len = 1; len < n; len++) for (int i = 1; i + len <= n; i++) { int j = i + len; f[i][j][0] = min(f[i + 1][j][0] + (s[n] - (s[j] - s[i])) * (x[i + 1] - x[i]), f[i + 1][j][1] + (s[n] - (s[j] - s[i])) * (x[j] - x[i])); f[i][j][1] = min(f[i][j - 1][0] + (s[n] - (s[j - 1] - s[i - 1])) * (x[j] - x[i]), f[i][j - 1][1] + (s[n] - (s[j - 1] - s[i - 1])) * (x[j] - x[j - 1])); } printf("%lld\n", min(f[1][n][0], f[1][n][1])); return 0; }