from bisect import bisect_left from collections import defaultdict N,S=map(int,input().split()) X=list(map(int,input().split())) W=list(map(int,input().split())) dp=[defaultdict(int) for _ in range(2)] w=sum(W) xi=bisect_left(X,S) l=xi-1 r=xi dp[1][(l-1,r,X[l],w-W[l])]=w*abs(S-X[l]) dp[1][(l,r+1,X[r],w-W[r])]=w*abs(S-X[r]) i=0 done=0 while not done: done=1 for (l,r,p,w),ans in dp[1-i].items(): if l>=0 and p>X[l]: if (l-1,r,X[l],w-W[l]) in dp[i]: dp[i][(l-1,r,X[l],w-W[l])]=min(dp[i][(l-1,r,X[l],w-W[l])],ans+w*abs(p-X[l])) else: dp[i][(l-1,r,X[l],w-W[l])]=ans+w*abs(p-X[l]) if w-W[l]>0:done=0 if r0:done=0 dp[1-i]=defaultdict(int) i=1-i print(min(dp[1-i].values()))