#P51797. 「LOJ」 初始化

「LOJ」 初始化

题目描述

对一个长度为 nn 的数组进行 nn 次操作,每次将 11pip_i 赋值。

由于蒟蒻非常鶸,所以在第 22nn 次操作之前,他只会将 11min(pi1,pi)\min(p_{i-1},p_i) 初始化。

如果不是第一次的某个操作将一个未初始化的变量赋值,则该操作为无效操作。第一次操作不需要初始化。

形式化地,第 i(2in)i(2\le i\le n) 次操作无效,当且仅当 pi>maxj=1i1min(pj,pj+1)p_i>\mathop{\max}\limits_{j=1}^{i-1}\min(p_j,p_{j+1})

现给定 n,mn,mp1,p2,,pmp_1,p_2,\ldots,p_m

求对于所有满足条件的排列 pp(共有 (nm)!(n-m)! 种)中,蒟蒻没有无效操作的种数。

若没有满足条件的方案则输出 -1注意,是 1-1,不是 00

否则,你只要回答答案 mod109+7\bmod 10^9+7 的结果即可。

输入格式

第一行两个整数 n,mn,m
第二行 mm 个整数 第 ii 个数为 pip_i

输出格式

一个正整数或 -1,表示满足题意的方案数 mod109+7\bmod 10^9+7 的结果或无解。

样例

3 0
4

数据范围与提示

n1018,m1000000,nmn\le 10^{18},m\le 1000000,n\ge m
pip_i 互不重复且小于等于 nn