20010 - Shaass and Lights
时间限制 : 1 秒
内存限制 : 128 MB
有 n 盏灯排成一行。这些灯从左到右编号为 1 到 n。最初有一些灯是亮着的。Shaass 想把所有灯都点亮。每一步中,他可以点亮一盏灭着的灯(这盏灯此时必须是灭的),前提是它有至少一个相邻的灯已经点亮。
他知道灯的初始状态,他想知道有多少种不同的方法可以将所有灯都点亮。请你计算将所有灯点亮的方案数,对 1000000007 (10^{9}+7) 取模。
输入
第一行包含两个整数 n 和 m,其中 n 表示所有灯的数量,m 表示初始点亮的灯的数量,1 \leq n \leq 1000, 1 \leq m \leq n。
第二行包含 m 个各不相同的整数,范围在 1 到 n 之间,表示初始点亮的灯的编号。
输出
仅一行,输出可以将所有灯点亮的不同方案数,结果对 1000000007 (10^{9}+7) 取模。
样例
输入
3 1 1
输出
1
输入
4 2 1 4
输出
2
输入
11 2 4 8
输出
6720