20010 - Shaass and Lights

通过次数

1

提交次数

1

时间限制 : 1 秒
内存限制 : 128 MB

n 盏灯排成一行。这些灯从左到右编号为 1n。最初有一些灯是亮着的。Shaass 想把所有灯都点亮。每一步中,他可以点亮一盏灭着的灯(这盏灯此时必须是灭的),前提是它有至少一个相邻的灯已经点亮。

他知道灯的初始状态,他想知道有多少种不同的方法可以将所有灯都点亮。请你计算将所有灯点亮的方案数,对 1000000007 (10^{9}+7) 取模。

输入

第一行包含两个整数 nm,其中 n 表示所有灯的数量,m 表示初始点亮的灯的数量,1 \leq n \leq 1000, 1 \leq m \leq n
第二行包含 m 个各不相同的整数,范围在 1n 之间,表示初始点亮的灯的编号。

输出

仅一行,输出可以将所有灯点亮的不同方案数,结果对 1000000007 (10^{9}+7) 取模。

样例

输入

3 1
1

输出

1

输入

4 2
1 4

输出

2

输入

11 2
4 8

输出

6720