Олимпиадный тренинг

Задача . B. Ральф и его магическое поле


У Ральфа есть магическое поле, которое разделено на n × m блоков. А именно, на поле есть n строк и m столбцов. Ральф хочет в каждый блок поставить целое число. Однако, магическое поле не всегда работает правильно. Оно работает, только если произведение чисел в каждой строке и в каждом столбце равно k, где k может быть равно 1 или -1.

Ральф хочет узнать количество способов поставить некоторые целые числа во все блоки так, чтобы магическое поле работало правильно. Два способа считаются различными, если и только если существует хотя бы один блок такой, что числа в нем в первом и втором способе различны. Вам необходимо вывести остаток от деления ответа на 1000000007 = 109 + 7.

Обратите внимание, нет ограничения на целые числа, которые можно ставить в блоки, однако, можно показать, что ответ конечный.

Входные данные

Единственная строка содержит три целых числа n, m и k (1 ≤ n, m ≤ 1018, k равно 1 или -1).

Выходные данные

Выведите единственное число — остаток от деления ответа на 1000000007.

Примечание

В первом примере единственный способ — поставить -1 в единственный блок.

Во втором примере единственный способ — поставить 1 в каждый блок.


Примеры
Входные данныеВыходные данные
1 1 1 -1
1
2 1 3 1
1
3 3 3 -1
16

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w644
Комментарий учителя