#include #include #include #include #include #include #include #include #include #include #define mkp make_pair #define mkt make_tuple #define rep(i,n) for(int i = 0; i < (n); ++i) #define all(v) v.begin(),v.end() using namespace std; typedef unsigned long long ll; const ll MOD=1e9+7; template void chmin(T &a,const T &b){if(a>b) a=b;} template void chmax(T &a,const T &b){if(a>N>>K; vector A(N),B(N); rep(i,N) cin>>A[i]; rep(i,N) cin>>B[i]; vector dp(N,INF); dp[0]=0; for(int i=1;i=0) chmin(dp[i],dp[i-1]+A[i-1]+B[i]); if(i-2>=0) chmin(dp[i],dp[i-2]+A[i-2]+B[i]+K); } ll ans=dp[0]; rep(i,N) chmax(ans,dp[i]); cout<