Закликаючи всіх програмістів#6644

Закликаючи всіх програмістів

1 секунда
128 мегабайтів
Легка

Місцева радіостанція проводить конкурс телефонних дзвінків, і ді-джей J-Z Фус відповідає за його проведення. Він виходить в ефір у випадковий час і оголошує, наприклад, "П'ятий абонент отримає шанс на головний приз". У цей момент комутатор заповнюється десятками дзвінків. Усі ці абоненти відображаються на моніторі перед J-Z з номерами , , і так далі. J-Z міг би просто вибрати номер абонента, але, вважаючи, що всі дзвонили майже одночасно, він обрав інший метод. Він вибирає випадкове число, наприклад, , і починає усувати кожного сьомого абонента. Якщо під час підрахунку він доходить до кінця списку, то повертається на початок, але після виключення абонента його позиція більше не враховується. Після усунення абонентів він переміщується на позицій вперед і визначає свого "п'ятого" абонента. На рисунку показано, як це працює, якщо на комутаторі J-Z було абонентів. У цьому випадку абонент у положенні вибирається як "п'ятий" зателефонувавший.

prb6644.gif

Звісно, вибір "п'ятого" зателефонувавшого абонента, кількість зателефонувавших абонентів і використання числа можуть змінюватися від дзвінка до дзвінка. Вам потрібно написати програму, яка визначить обраного абонента, враховуючи всю відповідну інформацію.

Вхідні дані

Кожен тест містить три натуральних числа , , , де - кількість зателефонувавших на комутатор, - кількість позицій, які пропускає J-Z кожного разу, поки не добереться до -го зателефонувавшого. Значення n \geq k. У наведеному прикладі n = 10, m = 7 і k = 5. Максимальне значення для будь-якого з цих чисел становить . Рядок, що містить три нулі, завершує вхід.

Вихідні дані

Для кожного тесту виведіть положення абонента, обраного як -го.

Приклади

Приклад 1

Loading
Loading