import sys input = sys.stdin.readline INF = 3 << 59 def solve(): n, s = map(int, input().split()) x = list(map(int, input().split())) w = list(map(int, input().split())) # dp[n][n+1][2] dp = [[[INF, INF] for _ in range(n + 1)] for _ in range(n)] # 累積和 sumw = [0] * (n + 1) for i in range(n): sumw[i + 1] = sumw[i] + w[i] # 初期化 for i in range(n): base = abs(x[i] - s) * sumw[n] dp[i][i + 1][0] = base dp[i][i + 1][1] = base # DP 遷移 for l in range(n - 1, -1, -1): for r in range(l + 1, n + 1): val = sumw[n] - sumw[r] + sumw[l] if r < n: dp[l][r + 1][1] = min( dp[l][r + 1][1], dp[l][r][0] + val * abs(x[l] - x[r]), dp[l][r][1] + val * abs(x[r - 1] - x[r]), ) if l > 0: dp[l - 1][r][0] = min( dp[l - 1][r][0], dp[l][r][0] + val * abs(x[l] - x[l - 1]), dp[l][r][1] + val * abs(x[r - 1] - x[l - 1]), ) print(min(dp[0][n][0], dp[0][n][1])) if __name__ == "__main__": solve()