Шестикутні шляхи
Пошук найкоротшого маршруту є типовою задачею для водія автомобіля. Якщо автомобіль рухається по найкоротшому шляху, це економить гроші. Крім того, важливо знати альтернативні маршрути тієї ж довжини, у випадку якщо основний маршрут недоступний, наприклад, із-за деяких дорожних робіт.
Для опису області необхідно промоделювати її карту. В ACM нещодавно виявили, що трикутні та прямокутні моделі областей є недостатніми, тому вирішили використовувати шестикутники для опису карт. Клітинки правильної шестикутної сітки (наприклад, сот) можна нумерувати, починаючи з 1 (у довільній клітинці) і рухатись по спіралі до інших клітинок. Таким чином, кожна комірка однозначно ідентифікується своїм номером. І навпаки, кожне додатнє ціле число визначає одну комірку.
Дві клітинки називаються сусідніми, якщо вони мають одну спільну сторону. У нескінченній структурі кожна комірка має рівно шіст сусідів. Наприклад, комірка номер 2 є сусідньою з 1, 3, 7, 8, 9 та 10. Шестикутний шлях - це непорожня послідовність комірок, у якій кожна з них (крім останньої) є сусідньою до наступної. Шестикутний шлях між двома комірками X та Y - це шлях, у якому X - перша комірка послідовності, а Y - остання. Довжиною шляху називається кількість комірок у ньому мінус одна. Довжина шляху являє собою кількість кроків, необхідних для проходження усього маршруту.
Вам потрібно знайти довжину найкоротшого маршруту між двома клітинками, а також загальну кількість взаємно різних маршрутів такої ж довжини. Різні маршрути повинні відрізнятись по меншій мірі у одному члені послідовності, тобто вони не повинні бути послідовностями, які повністю не перетинаються.
Вхідні дані
Вхідні дані містять декілька тестів, кожен з яких розміщено у окремому рядку. Рядок містить два цілих числа X та Y (1 ≤ X, Y ≤ 1000000, X ≠ Y), відокремлених пропуском. Числа задають дві різні комірки. За останнім тестом йде рядок з двох нулів, яка позначає кінець вхідних даних.
Вихідні дані
Для кожного тесту виведіть речення "There are N routes of the shortest length L.". Замініть L найменшою довжиною шляху між комірками X та Y. Замініть N кількістю різних шляхів тієї ж самої довжини. Якщо існує лише один шлях, то використовуйте слова "is" та "route" замість "are" та "routes".