Красивые последовательности

Дано множество AA, элементами которого являются различные целые числа от 11 до 88.

Рассмотрим последовательность [a1,a2,,an][a_1, a_2, \dots , a_n] из nn целых чисел, каждое из которых выбрано из множества AA. Будем называть эту последовательность красивой, если для любого числа xx все элементы последовательности, равные xx, находятся на расстоянии не меньше x друг от друга. Иначе говоря, для любого числа xx и для любых двух индексов 1i<jn1 \le i < j \le n, таких, что ai=aj=xa_i = a_j = x, должно выполняться неравенство jixj − i \ge x.

Требуется посчитать количество красивых последовательностей для заданного числа nn и множества AA, и вывести остаток от деления этого количества на число 109+710^9 + 7.

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

В первой строке ввода даны два целых числа nn и mm — длина последовательности и количество элементов множества A (1n1001 \le n \le 100, 1m81 \le m \le 8).

Во второй строке ввода даны mm различных целых чисел aia_i в порядке возрастания — элементы множества AA (1ai81 \le a_i \le 8, ai<ai+1a_i < a_{i+1}).

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

Выведите одно целое число — остаток от деления количества красивых последовательностей на число 109+710^9 + 7.

Подзадачи

баллынеобх. подзадачиограничения
1

5

-

A=1,2,n10A = {1, 2}, n \le 10

2

10

1

A=1,2,n30A = {1, 2}, n \le 30

3

15

1, 2

A=1,2A = {1, 2}

4

20

1, 2, 3

A=1,kA = {1, k} для 2k82 \le k \le 8

5

30

1, 2, 3

ai5a_i \le 5

6

20

1, 2, 3, 4, 5

Нет доп. ограничений

STDINSTDOUT
3 2
1 2
5

Примечание

В примере красивыми являются последовательности [1,1,1],[1,1,2],[1,2,1],[2,1,1],[2,1,2][1, 1, 1], [1, 1, 2], [1, 2, 1], [2, 1, 1], [2, 1, 2].

Последовательности [2,2,2],[1,2,2],[2,2,1][2, 2, 2], [1, 2, 2], [2, 2, 1] красивыми не являются, так как в каждой из них существуют два элемента со значением 22, находящиеся на расстоянии 11 друг от друга.