Только что Майк был очень занят подготовкой к экзаменам и контестам, теперь же, чтобы проветриться, он решил прогуляться мимо городских достопримечательностей.
Город состоит из n перекрестков с номерами от 1 до n. Майк начинает прогулку от своего дома и идет вдоль определенной последовательности перекрестков. Чтобы дойти от перекрестка i до перекрестка j, Майку нужно потратить |i - j| единиц энергии. Суммарное количество энергии, потраченное Майком при прогулке вдоль последовательности перекрестков p1 = 1, p2, ..., pk равно
единицам энергии.
Конечно, прогулки были бы скучными без переулков. Переулком называется специальный путь, позволяющий Майку идти от одного перекрестка к другому, используя лишь 1 единицу энергии. Всего в городе Майка ровно n переулков, i-й из них позволяет пройти от перекрестка с номером i к перекрестку с номером ai (i ≤ ai ≤ ai + 1) (но не в противоположном направлении), то есть для каждого перекрестка существует ровно один исходящий переулок. Формально, если Майк выберет последовательность p1 = 1, p2, ..., pk, то для каждого 1 ≤ i < k удовлетворяющего pi + 1 = api and api ≠ pi Майк потратит всего 1 единицу энергии вместо |pi - pi + 1| единиц, прогуливаясь от перекрестка pi к перекрестку pi + 1. К примеру, если Майк решит выбрать последовательность p1 = 1, p2 = ap1, p3 = ap2, ..., pk = apk - 1, то потратит суммарно k - 1 единицу энергии на прогулку вдоль перекрестков.
Перед тем как отправиться в путь, Майк просит вас для каждого перекрестка посчитать минимальное количество энергии, необходимое, чтобы дойти до него от дома Майка. Формально, для каждого 1 ≤ i ≤ n Майка интересует минимально возможное суммарное количество энергии некоторой последовательности p1 = 1, p2, ..., pk = i.
Выходные данные
В единственной строке выведите n чисел m1, m2, ..., mn, где mi означает наименьшее количество единиц энергии, которое Майку нужно потратить, чтобы добраться от перекрестка 1 до перекрестка i.
Примечание
В первом примере подходящими являются следующие последовательности:
1: 1; m1 = 0;
2: 1, 2; m2 = 1;
3: 1, 3; m3 = |3 - 1| = 2.
Во втором примере последовательность для любого перекрестка 1 < i всегда имеет вид 1, i, а mi = |1 - i|.
В третьем примере входных данных можно рассматривать следующие последовательности:
1: 1; m1 = 0;
2: 1, 2; m2 = |2 - 1| = 1;
3: 1, 4, 3; m3 = 1 + |4 - 3| = 2;
4: 1, 4; m4 = 1;
5: 1, 4, 5; m5 = 1 + |4 - 5| = 2;
6: 1, 4, 6; m6 = 1 + |4 - 6| = 3;
7: 1, 4, 5, 7; m7 = 1 + |4 - 5| + 1 = 3.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
3 2 2 3
|
0 1 2
|
|
2
|
5 1 2 3 4 5
|
0 1 2 3 4
|
|
3
|
7 4 4 4 4 7 7 7
|
0 1 2 1 2 3 3
|