def main(): import sys input = sys.stdin.read().split() idx = 0 N = int(input[idx]) idx += 1 K = int(input[idx]) idx += 1 A = list(map(int, input[idx:idx+N])) idx += N B = list(map(int, input[idx:idx+N])) idx += N if N == 1: print(0) return prev_prev = 0 # S[1] prev = prev_prev + A[0] + B[1] # S[2] max_time = max(prev_prev, prev) for j in range(3, N+1): t1 = prev + A[j-2] + B[j-1] t2 = prev_prev + A[j-3] + B[j-1] current = min(t1, t2 + K) if current > max_time: max_time = current prev_prev, prev = prev, current print(max_time) if __name__ == "__main__": main()