창의적인 회계

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

문제

바이트아사르(Byteasar)와 친구들은 유명한 휴양지 바이텐-바이텐에서 여름 휴가를 보내고 있다. 관광객이 많은 곳이라 물가가 비싸서, 이들은 틈틈이 일을 해 여행 경비를 보탰다. 바이트아사르는 모임 전체의 회계(총무)를 맡았다.

휴가가 끝나면 모임은 정산을 한다. 친구들은 전체 잉여금(또는 빚)을 모임 인원수 mm명으로 똑같이 나누기로 했다. 만약 정확히 나누어떨어지지 않으면, 회계를 맡은 보상으로 바이트아사르가 공동 예산에서 남는 금액을 가져가 나머지 금액이 인원수로 나누어떨어지도록 한다. 총액이 빚(음수)일 때에도 그의 보상은 빚을 늘리는 방향으로 적용된다.

바이트아사르가 받는 보상은 선택한 기간의 총 수지 SSmm으로 나눈 나머지와 정확히 같다. 여기서 나머지는 항상 00 이상 m1m-1 이하의 값으로 정의한다. 다시 말해 SrS - rmm의 배수가 되는 유일한 r[0,m1]r \in [0, m-1]이 그의 보상이다. 예를 들어 S=30S = 30, m=13m = 13이면 30=2×13+430 = 2 \times 13 + 4이므로 보상은 44이고, S=1S = -1, m=13m = 13이면 1=(1)×13+12-1 = (-1) \times 13 + 12이므로 보상은 1212다.

바이트아사르는 얄팍한 계획을 세웠다. 그는 친구들에게 ll번째 날부터 rr번째 날까지에 해당하는 장부의 일부만 보여주기로 했다(1lrn1 \le l \le r \le n). 그는 이 연속된 기간의 총 수지에 대한 보상이 최대가 되도록 구간을 고르려 한다.

회계 보상이 최대가 되도록 기간을 최적으로 선택했을 때 바이트아사르가 받게 되는 금액을 구하는 프로그램을 작성하라.

입력

첫째 줄에 두 정수 nnmm이 주어진다(1n2000001 \le n \le 200\,000, 2m10182 \le m \le 10^{18}). nn은 휴가 일수, mm은 바이트아사르를 포함한 모임의 인원수다. 둘째 줄에는 nn개의 정수 aia_i가 주어진다(ai1018|a_i| \le 10^{18}). aia_iii번째 날의 수지(바이탈러 단위)이며, 양수는 수입이 지출보다 많음을 뜻한다.

출력

바이트아사르가 회계 보상으로 받을 수 있는 최대 금액(바이탈러)을 정수 하나로 출력한다.