화물 열차

아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

상부 바이타운과 하부 바이타운의 기차역은 단선 철로 하나로 이어져 있다. 기차가 두 역 사이를 오가는 데는 방향과 상관없이 ss분이 걸린다. 같은 역에서 출발하는 기차들은 출발 시각이 1분 이상 떨어져 있어야 한다. 또한 어느 순간에도 철로 위를 달리는 기차들은 모두 같은 방향으로 가야 한다. 어떤 기차가 역에 도착하는 그 시각에 다른 기차가 같은 역에서 출발하는 것은 허용된다.

시간표에 따르면 하부 바이타운으로 가는 화물 열차 nn대가 상부 바이타운을 지나간다. ii번째 열차는 상부 바이타운에 시각 tit_i에 도착하며, 그보다 먼저 출발할 수는 없다. 각 열차는 하부 바이타운까지 가서 화물을 싣고 상부 바이타운으로 돌아온다. 화물을 싣는 시간은 0으로 본다.

마지막 열차가 상부 바이타운으로 돌아오는 시각이 가장 이를 때, 그 시각을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 열차의 수 nn과 편도 이동 시간 ss가 공백 하나로 구분되어 주어진다 (1n1061 \le n \le 10^6, 1s1091 \le s \le 10^9). 둘째 줄에 열차들이 상부 바이타운 역에 도착하는 시각 t1,t2,,tnt_1, t_2, \dots, t_n이 공백으로 구분되어 주어진다 (0t1t2tn1090 \le t_1 \le t_2 \le \dots \le t_n \le 10^9).

출력

마지막 열차가 상부 바이타운으로 돌아오는 가장 이른 시각을 정수 하나로 한 줄에 출력한다.

힌트

첫 번째 예제에서는 상부 바이타운에서 시각 1, 9, 11에 열차가 출발하고 하부 바이타운에서 시각 5, 15, 16에 열차가 출발할 때 최솟값을 얻는다.