D. Патруль Битоникса
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
stdin
вывод
stdout

Байтляндия пытается отправить космическую миссию на планету Bit-X. Их задачу усложняет то, что орбита планеты регулярно патрулируется Капитаном Битониксом, возглавляющим космические подразделения планеты Bit-X.

Вокруг Bit-X есть n станций пронумерованных по часовой стрелке от 1 до n. Станции равномерно расположены по круговой орбите, то есть станции с номерами i и i + 1 (1 ≤ i < n), а также станции с номерами 1 и n, являются соседними. Расстояние между любой парой соседних станций равняется m космическим милям. Патрулирование Капитана Битоникса заключается в том, что от запрыгивает в свою ракету на одной из станций и летает по кругу, пролетая по меньшей мере одну космическую милю перед тем, как приземлится на некоторой станции (возможно, той, с которой он взлетал).

Ракета Битоникса движется на энергии, получаемой от сжигания баков с топливом. После того, как Битоникс использует x-литровый бак с топливом и выбирает направление (по или против часовой стрелки), ракета пролетает ровно x космических миль по круговой орбите в выбранном направлении. Обратите внимание, что у ракеты нет тормозов; ракета не может остановиться, пока не опустошится бак с топливом.

Например, предположим, что n = 3, m = 60, а у Битоникса есть баки с топливом на 10, 60, 90 и 100 литров. Если Битоникс стартует со станции номер 1 и использует 100-литровый бак, чтобы лететь по часовой стрелке, затем использует 90-литровый бак, чтобы лететь по часовой стрелке, а затем использует 10-литровый бак, чтобы лететь против часовой стрелки, то он приземлится на станции номер 1, совершив корректный патруль. Обратите внимание, что Битоникс не обязан использовать все доступные баки с топливом. В данном примере Битоникс также может просто использовать 60-литровый бак, чтобы долететь до станции 2 или 3.

Однако, если бы n равнялось 3, m равнялось бы 60, а Битониксу были доступны только один бак на 10 литров и один бак на 100 литров, то он никак не смог бы совершить корректный патруль (он бы не смог приземлиться ровно на странции).

Космическое агентство Байтляндии хочет уничтожить некоторые топливные баки Капитана Битоникса таким образом, чтобы он не мог совершить ни одного корректного патруля. Сколькими способами можно уничтожить некоторое подмножество топливных баков Капитана Битоникса таким образом, чтобы он не мог совершить ни одного корректного патруля? Найдите описанное количество способов и выведите остаток от его деления на 1000000007 (109 + 7).

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

В первой строке записано три целых числа n (2 ≤ n ≤ 1000) — количество станций, m (1 ≤ m ≤ 120) — расстояние между соседними станциями и t (1 ≤ t ≤ 10000) — количество баков с топливом Капитана Битоникса.

Во второй строке записано через пробел t целых чисел от 1 до 109, включительно, — объемы баков с топливом Битоникса.

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

Выведите единственное число — количество различных подмножеств топливных баков Капитана Битоникса таких, что их уничтожение не позвонит ему совершать корректные патрули, по модулю 1000000007 (109 + 7).

Примеры
Входные данные
7 6 5
5 4 12 6 5
Выходные данные
6
Входные данные
3 60 2
10 100
Выходные данные
4
Примечание

Все топливные баки различны, даже если объемы некоторых из них совпадают.