Лампочки
У Джона есть лампочек и распределительный щит с переключателями. Каждая лампочка может быть включена или выключена, нажатие - го переключателя меняет состояние лампы от вкл до выкл и наоборот. Он использует их чтобы сыграть в изобретенную им игру. На каждом ходе Джон выбирает (возможно, пустой) набор переключателей и нажимает их, таким образом инвертируя состояния соответствующих лампочек. Ровно после ходов Джон хотел бы включить первые лампочек, а остальные выключить, в противном случае он проигрывает. Имеется только одно ограничение: ему нельзя нажимать один и тот же набор переключателей два раза.
Это довольно простая игра, так как существует множество способов выиграть. Это побудило его продолжать играть в разные выигрышные игры, и теперь он намерен попробовать их все. Помогите Джону посчитать, сколько существует способов выиграть. Две игры считаются одинаковыми, если после перестановки ходов в одной из них на каждом шаге в обеих нажимается один и тот же набор переключателей.
Например, если и , одна возможная выигрышная игра достигается нажатием переключателей и на первом шаге, и на втором шаге, и и на последнем. Это считается эквивалентным, например, сначала нажатию и , затем и наконец .
Входные данные
Содержит не более строк, по одной на каждый тест. В каждой строке записаны три целых числа и . Последняя строка содержит и не обрабатывается.
Выходные данные
Для каждого теста выведите в отдельной строке количество способов, которыми Джон может сыграть в игру, по модулю простого числа .