#include using namespace std; using int64 = long long; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N; int64 K; cin >> N >> K; vector A(N), B(N); for (int i = 0; i < N; ++i) { cin >> A[i]; } for (int i = 0; i < N; ++i) { cin >> B[i]; } // T[i] = 社員 i+1 が最初に叫ぶ時刻 vector T(N, 0); // 社員1は時刻0に叫ぶ。 int64 answer = 0; if (N >= 2) { // 社員2は社員1を聞いた瞬間に叫ぶ。 T[1] = T[0] + A[0] + B[1]; answer = max(answer, T[1]); } for (int j = 2; j < N; ++j) { // 社員 j+1 が社員 j の声を聞く時刻 const int64 hear_previous = T[j - 1] + A[j - 1] + B[j]; // 社員 j-1 の声を聞いてから K 秒経過する時刻 const int64 timeout = T[j - 2] + A[j - 2] + B[j] + K; T[j] = min(hear_previous, timeout); answer = max(answer, T[j]); } cout << answer << '\n'; return 0; }