`Всеукраїнський центр проведення олімпіад в мережі Інтернет

Задача Algo. Виконавець Робот може рухатися по клітчастій доріжці, виконуючи кроки вперед чи назад за такими правилами, послідовність яких задає «правильний» алгоритм його руху:

- команда ВПЕРЕД(U) – робот робить U кроків вперед. Така команда повинна бути у«правильному» алгоритмі завжди першою і завжди останньою. У процесі виконання алгоритму ця команда може виконуватися кілька разів поспіль.

- команда НАЗАД(D) - робот робить D кроків назад. Таку команду можна виконувати лише між двома командамиВПЕРЕД(U), тобто вона не може бути виконана кілька разів підряд. В межах одного алгоритму командаНАЗАД(D) може бути виконана з різними D (1<=D<= U-1). За межі доріжки робот виходити не може, а стартує з першої клітинки.Скільки різних «правильних» алгоритмів можуть скласти гуртківці для робота? Зрозуміло, що кожен "правильний" маршрут закінчується на останній клітинці доріжки.

Технічні умови. Програма Algo читає з пристрою стандартного введення 2 числа через пропуск: U - кількість кроків у команді Вперед(U), та N – довжину клітчастої доріжки (2<=U<=N<=1000000). Програма виводить на пристрій стандартного виведення єдине число – кількість «правильних» послідовностей команд. Так як їх кількість може бути велика, виводити по модулю 1000000 Якщо одні й ті ж самі команди розміщено в різній послідовності (обидві – за правилами!) – це різні алгоритми.

Приклади

Введення

3 7

Введення

5 15

Виведення

4

Виведення

236

 

 

© LIKT 1998-2024