编程题
### 问题描述
小蓝是一名考古学家,他发现了一批古代文物中的一种神秘密码。他怀疑这个密码是通过一种特殊的加密算法生成的。
这个加密算法需要使用一个长度为 $n$ 的数组 $a$,其中每个元素都是 $1$ 到 $d$ 之间的整数。加密过程非常复杂,需要多次进行数值运算。具体流程如下:
1. 首先,将 $a$ 数组中的元素按照从小到大的顺序排序,得到一个新的数组 $a'$。
2. 然后,定义一个新的数组 $b$,令 $b_1=a'_1$。对于 $i>1$,$b_i$ 的值为 $b_{i-1}$ 和 $a'_i$ 之间的差的绝对值。
3. 最后,如果 $b$ 数组中的元素也是按照从小到大的顺序排序的,那么这个加密过程是有效的。
小蓝想知道,在保证加密过程有效的情况下,有多少种不同的 $a$ 数组可以用于古代遗迹加密。由于结果可能非常大,你需要将答案对给定的模数进行取模。
### 输入格式
输入两个整数 $d$ 和 $m$($1\leq d,m \leq 10^6$),含义如上文所述。
### 输出格式
输出一个整数,表示符合要求的 $a$ 数组的数量对 $m$ 取模的结果。
### 样例输入
```
3 100000007
```
### 样例输出
```
5
```