def main(): import sys input = sys.stdin.read().split() ptr = 0 N = int(input[ptr]) ptr += 1 K = int(input[ptr]) ptr += 1 if N == 0: print(0) return A = list(map(int, input[ptr:ptr+N])) ptr += N B = list(map(int, input[ptr:ptr+N])) ptr += N if N == 1: print(0) return max_time = 0 t_prev_prev = 0 # T[1] t_prev = t_prev_prev + A[0] + B[1] max_time = max(t_prev_prev, t_prev) for j in range(3, N + 1): a = t_prev + A[j-2] + B[j-1] b = t_prev_prev + A[j-3] + B[j-1] + K current = min(a, b) if current > max_time: max_time = current # Update for next iteration t_prev_prev, t_prev = t_prev, current print(max_time) if __name__ == '__main__': main()