만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

롤러코스터

면접 대비

시간 제한2초메모리 제한1024 MB

요약
N개 그룹의 인원 a_i와 정원 M이 주어질 때, 순서를 지키며 각 그룹이 탈 수 있는 가장 이른 탑승 번호(0부터 시작)를 출력합니다.
난이도

쉬움10점 중 3점

유형
시뮬레이션, 그리디
정답자
아직 제출이 없습니다

문제

JAG(Japan Amusement Group) 회원들은 많은 사람이 찾아오도록 놀이기구를 더 매력적으로 만들 방법을 논의한다. 최근에는 줄에서 기다리는 스트레스를 줄이는 데 관심이 많다. JAG 회원 한 명은 대기 시간을 알면 이런 스트레스가 줄어든다는 가설을 찾았다. 이 문제에서는 롤러코스터의 대기 시간을 예측하는 프로그램을 작성한다.

NN개의 그룹이 롤러코스터 줄에 서 있다. 그룹은 11번부터 NN번까지 번호가 붙어 있고, 그룹 ii에는 aia_i명이 있다. 줄에 선 사람들은 그룹 번호 오름차순으로 탑승한다.

첫 번째 운행은 시각 0에 출발하고, 그 뒤로는 매분 출발한다. 롤러코스터는 최대 MM명까지 태울 수 있다.

그룹의 구성원 전원은 같은 시각에 탑승해야 한다. 한 번에 정확히 MM명을 채울 필요는 없다. 각 그룹은 가능한 한 빨리 타고 싶어 하므로, 탈 수 있으면 바로 탄다.

입력

첫째 줄에 두 정수 NN과 MM이 주어진다. 여기서 1≤N≤100 0001 \le N \le 100\,000, 1≤M≤1091 \le M \le 10^9이다. NN은 그룹의 수이고, MM은 롤러코스터의 정원이다.

둘째 줄에 NN개의 정수 a1,a2,…,aNa_1, a_2, \dots, a_N이 주어진다. 여기서 1≤ai≤M1 \le a_i \le M이다.

출력

NN개의 줄을 출력한다. ii번째 줄에는 그룹 ii가 롤러코스터를 탈 수 있는 시각을 출력한다.

예제2

  1. 예제 1

    입력
    3 5
    2 4 1
    
    예상 출력
    0
    1
    1
    
  2. 예제 2

    입력
    2 1000000000
    1000000000 1000000000
    
    예상 출력
    0
    1