В m-этажном (m > 1) офисе международной корпорации CodeForces установили новейшую систему управления лифтом. Она работает следующим образом.
Все этажи офиса последовательно пронумерованы целыми числами от 1 до m. В момент времени t = 0 лифт находится на первом этаже, лифт пустой и никто не ждет лифта на других этажах. Далее, в моменты времени ti (ti > 0) к лифту подходят люди. Для простоты будем считать, что один человек пользуется лифтом только один раз в рассматриваемый промежуток времени. Для каждого человека известно 3 параметра: момент времени, в который человек подходит к лифту, этаж, на котором человек находится изначально, и этаж, на который он хочет попасть.
Передвижение лифта между этажами происходит следующим образом. В момент времени t (t ≥ 0, t — целое) лифт всегда находится на каком-то этаже. Лифт сначала выпускает всех людей, которые находятся в лифте и хотят попасть на текущий этаж. Затем он впускает всех людей, которые ждут лифта на текущем этаже. Если человек подходит к лифту ровно в момент времени t, то он успевает в него сесть. Можно считать, что все эти действия (посадка и высадка из лифта) совершаются мгновенно. После этого лифт решает, в каком направлении ему переместиться, и в момент времени (t + 1) лифт попадает на выбранный этаж.
Лифт выбирает направление движения по следующему алгоритму.
- Если лифт пустой, и в текущий момент времени ни на одном этаже никто его не ждет, то лифт остается на текущем этаже.
- Иначе, пусть лифт находится на этаже номер x (1 ≤ x ≤ m). Тогда лифт вычисляет «приоритеты» направлений pup и pdown: pup — это сумма количества людей, которые ждут лифт на этажах с номерами больше x, и количества людей в лифте, которые хотят попасть на этаж с номером больше x; pdown — это сумма количества людей, которые ждут лифт на этажах с номерами меньше x, и количества людей в лифте, которые хотят попасть на этаж с номером меньше x. Если pup ≥ pdown, то лифт поднимается на один этаж выше текущего (то есть с этажа x на этаж x + 1), иначе лифт опускается на один этаж ниже текущего (то есть с этажа x на этаж x - 1).
Ваша задача состоит в том, чтобы промоделировать работу лифта и для каждого человека сказать момент времени, когда он окажется на нужном ему этаже. Обратите внимание, лифт достаточно большой, чтобы вместить всех людей одновременно.
Выходные данные
Выведите n строк. В i-той строке выведите единственное целое число — момент времени, в который i-тый человек попадет на нужный ему этаж. Люди пронумерованы в том порядке, в котором они заданы во входных данных.
Пожалуйста, не используйте спецификатор %lld для чтения или записи 64-х битовых чисел на С++. Рекомендуется использовать потоки cin, cout или спецификатор %I64d.