상부 바이타운과 하부 바이타운의 기차역은 단선 철로 하나로 이어져 있다. 기차가 두 역 사이를 오가는 데는 방향과 상관없이 s분이 걸린다. 같은 역에서 출발하는 기차들은 출발 시각이 1분 이상 떨어져 있어야 한다. 또한 어느 순간에도 철로 위를 달리는 기차들은 모두 같은 방향으로 가야 한다. 어떤 기차가 역에 도착하는 그 시각에 다른 기차가 같은 역에서 출발하는 것은 허용된다.
시간표에 따르면 하부 바이타운으로 가는 화물 열차 n대가 상부 바이타운을 지나간다. i번째 열차는 상부 바이타운에 시각 ti에 도착하며, 그보다 먼저 출발할 수는 없다. 각 열차는 하부 바이타운까지 가서 화물을 싣고 상부 바이타운으로 돌아온다. 화물을 싣는 시간은 0으로 본다.
마지막 열차가 상부 바이타운으로 돌아오는 시각이 가장 이를 때, 그 시각을 구하는 프로그램을 작성하시오.
첫째 줄에 열차의 수 n과 편도 이동 시간 s가 공백 하나로 구분되어 주어진다 (1≤n≤106, 1≤s≤109). 둘째 줄에 열차들이 상부 바이타운 역에 도착하는 시각 t1,t2,…,tn이 공백으로 구분되어 주어진다 (0≤t1≤t2≤⋯≤tn≤109).
마지막 열차가 상부 바이타운으로 돌아오는 가장 이른 시각을 정수 하나로 한 줄에 출력한다.
첫 번째 예제에서는 상부 바이타운에서 시각 1, 9, 11에 열차가 출발하고 하부 바이타운에서 시각 5, 15, 16에 열차가 출발할 때 최솟값을 얻는다.