C. Шаасс и лампочки
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
stdin
вывод
stdout

В ряд выстроено n лампочек. Лампочки пронумерованы от 1 до n слева направо. Изначально некоторые лампочки включены. Шаасс хочет включить все лампочки. За один ход он может включить лампочку (которая на тот момент должна быть выключенной), если у нее есть хотя бы одна соседняя включенная лампочка.

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

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

В первой строке записаны два целых числа n и m, где n — общее количество лампочек, а m — количество изначально включенных лампочек, (1 ≤ n ≤ 1000, 1 ≤ m ≤ n). Вторая строка содержит m различных целых чисел, каждое — от 1 до n, включительно — номера изначально включенных лампочек.

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

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

Примеры
Входные данные
3 1
1
Выходные данные
1
Входные данные
4 2
1 4
Выходные данные
2
Входные данные
11 2
4 8
Выходные данные
6720