#include using namespace std; using ll = long long; ll dp[1001][1001][2]; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int n, s; cin >> n >> s; vector x(n), w(n); for(auto &&v : x) cin >> v; for(auto &&v : w) cin >> v; vector sv(n + 1); for(int i = 0; i < n; i++) sv[i + 1] = sv[i] + w[i]; const ll W = sv[n]; for(int i = 0; i < n; i++) dp[i][i + 1][0] = dp[i][i + 1][1] = W * abs(x[i] - s); for(int l = n - 2; l >= 0; l--){ for(int r = l + 2; r <= n; r++){ ll wl = W - (sv[r] - sv[l + 1]), wr = W - (sv[r - 1] - sv[l]); dp[l][r][0] = min(dp[l + 1][r][0] + wl * (x[l + 1] - x[l]), dp[l + 1][r][1] + wl * (x[r - 1] - x[l])); dp[l][r][1] = min(dp[l][r - 1][0] + wr * (x[r - 1] - x[l]), dp[l][r - 1][1] + wr * (x[r - 1] - x[r - 2])); } } cout << min(dp[0][n][0], dp[0][n][1]) << '\n'; }