Лампочки
У Джона є лампочок і розподільчий щиток з перемикачами. Кожна лампочка може бути увімкнена або вимкнена, і натискання -го перемикача змінює стан лампи з увімкненого на вимкнений і навпаки. Він використовує їх, щоб зіграти у винайдену ним гру. На кожному ході Джон обирає (можливо, порожній) набір перемикачів і натискає їх, таким чином інвертуючи стани відповідних лампочок. Рівно після ходів Джон хотів би увімкнути перші лампочок, а решту вимкнути, в іншому випадку він програє. Є лише одне обмеження: йому не можна натискати один і той самий набір перемикачів двічі.
Це досить проста гра, оскільки існує багато способів виграти. Це спонукало його продовжувати грати в різні виграшні ігри, і тепер він має намір спробувати їх усі. Допоможіть Джону порахувати, скільки існує способів виграти. Дві гри вважаються однаковими, якщо після перестановки ходів в одній з них на кожному кроці в обох натискається один і той самий набір перемикачів.
Наприклад, якщо і , одна можлива виграшна гра досягається натисканням перемикачів і на першому кроці, і на другому кроці, і і на останньому. Це вважається еквівалентним, наприклад, спочатку натисканню і , потім і нарешті .
Вхідні дані
Містить не більше рядків, по одному на кожен тест. У кожному рядку записані три цілі числа і . Останній рядок містить і не обробляється.
Вихідні дані
Для кожного тесту виведіть в окремому рядку кількість способів, якими Джон може зіграти в гру, за модулем простого числа .