바이트아사르(Byteasar)와 친구들은 유명한 휴양지 바이텐-바이텐에서 여름 휴가를 보내고 있다. 관광객이 많은 곳이라 물가가 비싸서, 이들은 틈틈이 일을 해 여행 경비를 보탰다. 바이트아사르는 모임 전체의 회계(총무)를 맡았다.
휴가가 끝나면 모임은 정산을 한다. 친구들은 전체 잉여금(또는 빚)을 모임 인원수 m명으로 똑같이 나누기로 했다. 만약 정확히 나누어떨어지지 않으면, 회계를 맡은 보상으로 바이트아사르가 공동 예산에서 남는 금액을 가져가 나머지 금액이 인원수로 나누어떨어지도록 한다. 총액이 빚(음수)일 때에도 그의 보상은 빚을 늘리는 방향으로 적용된다.
바이트아사르가 받는 보상은 선택한 기간의 총 수지 S를 m으로 나눈 나머지와 정확히 같다. 여기서 나머지는 항상 0 이상 m−1 이하의 값으로 정의한다. 다시 말해 S−r이 m의 배수가 되는 유일한 r∈[0,m−1]이 그의 보상이다. 예를 들어 S=30, m=13이면 30=2×13+4이므로 보상은 4이고, S=−1, m=13이면 −1=(−1)×13+12이므로 보상은 12다.
바이트아사르는 얄팍한 계획을 세웠다. 그는 친구들에게 l번째 날부터 r번째 날까지에 해당하는 장부의 일부만 보여주기로 했다(1≤l≤r≤n). 그는 이 연속된 기간의 총 수지에 대한 보상이 최대가 되도록 구간을 고르려 한다.
회계 보상이 최대가 되도록 기간을 최적으로 선택했을 때 바이트아사르가 받게 되는 금액을 구하는 프로그램을 작성하라.
첫째 줄에 두 정수 n과 m이 주어진다(1≤n≤200000, 2≤m≤1018). n은 휴가 일수, m은 바이트아사르를 포함한 모임의 인원수다. 둘째 줄에는 n개의 정수 ai가 주어진다(∣ai∣≤1018). ai는 i번째 날의 수지(바이탈러 단위)이며, 양수는 수입이 지출보다 많음을 뜻한다.
바이트아사르가 회계 보상으로 받을 수 있는 최대 금액(바이탈러)을 정수 하나로 출력한다.