#include<bits/stdc++.h>
using namespace std;

int n, l, x[303000], t[303000], ans=1, c0, c1;

bool okl(int i){ return x[i]*2>=t[i]; }
bool okr(int i){ return (l-x[i])*2>=t[i]; }

int main(){
    cin>>n>>l;
    for (int i=1;i<=n;++i) cin>>x[i];
    for (int i=1;i<=n;++i){
        cin>>t[i]; ans+=t[i]/(l*2);
        t[i]%=l*2;
    }
    for (int i=1;i<=n;++i){
        if (!t[i]) continue;
        c0+=i==n;
        if (c0&&okr(i)){
            --c0;
            if (okl(i)) ++c1;
        }else if (okl(i)){
            ++c0; ++ans;
        }else if (okr(i)&&c1){
            --c1; ++c0; ++ans;
        }else{
            ++ans;
        }
    }
    cout<<2ll*l*ans<<endl;
}