Робомарафон

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

문제

В робомарафоне принимают участие nn роботов. Роботы должны преодолеть одинаковую дистанцию, передвигаясь по расположенным рядом друг с другом дорожкам шириной один метр каждая. Известно, что расположенный на ii-й дорожке робот преодолевает дистанцию за a_ia\_i секунд.

В точке старта каждого робота установлено специальное сигнальное устройство, которое должно сработать в момент старта. Чтобы сделать соревнования менее предсказуемыми, судьи перед стартом могут отключить некоторые сигнальные устройства, остальные устройства останутся активными. Только активные устройства срабатывают в тот момент, когда главный судья начинает робомарафон. В начале робомарафона хотя бы одно сигнальное устройство должно являться активным.

Каждый робот начинает движение в тот момент, когда до него доходит стартовый сигнал от активного устройства. Сигнал распространяется со скоростью 1 метр в секунду. Если ближайшее к ii-му роботу активное устройство находится на jj-й дорожке, то расстояние между ними составляет x_i=ijx\_i=|i-j| метров. Этот робот начнёт движение через x_ix\_i секунд после старта, преодолеет дистанцию за a_ia\_i секунд, и финиширует через f_i=a_i+x_if\_i = a\_i + x\_i секунд после старта робомарафона.

Пусть k_ik\_i --- количество роботов, которые финишировали строго раньше ii-го робота. Место ii-го робота по итогам робомарафона равно k_i+1k\_i + 1. Если несколько роботов финишируют одновременно, а перед ними финишировали kk роботов, то считается, что все они заняли (k+1)(k+1)-е место.

Рассмотрим пример. Пусть n=3n = 3, роботы преодолевают дистанцию за a_1=2a\_1 =2, a_2=3a\_2 = 3 и a_3=5a\_3 = 5 миллисекунд, а активным являлось только сигнальное устройство у третьего робота. Тогда первый робот начнет движение через 22 секунды после начала забега, f_1=4f\_1 = 4. Второй робот начнет движение через 11 секунду, f_2=4f\_2 =4. Третий робот начнет движение в момент старта, f_3=5f\_3 = 5. По итогам забега первый и второй робот делят первое место, третий робот занимает третье место. Если же, например, сработают все три сигнальных устройства, роботы финишируеют через f_1=2f\_1 = 2, f_2=3f\_2 = 3, f_3=5f\_3 = 5, секунд, соответственно. Первый робот займет первое место, второй робот займет второе место, а третий робот --- третье место.

Как видно из примера, место, которое займет робот, зависит от того, какие сигнальные устройства являются активными. Необходимо обрабатывать два типа запросов:

  1. для каждого робота определить минимальное место, которое он может занять;
  2. для каждого робота определить максимальное место, которое он может занять.

Требуется написать программу, которая по типу запроса и информации о времени прохождения дистанции каждым роботом определяет для каждого робота минимальное или максимальное место, которое он может занять в марафоне.

입력

В первой строке входных данных находятся два целых числа: nn --- количество роботов (1n400,0001 \le n \le 400\\,000), и pp --- тип запроса. Значение p=1p = 1 означает, что для каждого робота необходимо определить минимальное место, которое он может занять, значение p=2p = 2 означает, что для каждого робота необходимо определить максимальное место, которое он может занять.

Во второй строке находятся nn целых чисел a_1,a_2,,a_na\_1, a\_2, \ldots, a\_n --- время, за которое роботы преодолевают дистанцию (0<a_i1090 < a\_i \le 10^9).

출력

Требуется вывести nn целых чисел, ii-е из которых, в зависимости от типа запроса, должно задавать минимальное или максимальное место, которое может занять ii-й робот.