Problem R
Derangement Rotations
A Derangement is a permutation $p$ of ${1, 2, \ldots , n}$ where $p_ i \ne i$ for all $i$ from $1$ to $n$.
A rotation of a sequence $a_1, a_2, \ldots , a_ n$ with offset $k$ ($1 \le k \le n$) is equal to the sequence $a_ k$, $a_{k+1}$, $\ldots $, $a_ n$, $a_1$, $a_2$, $\ldots $, $a_{k-1}$. A sequence of length $n$ has at most $n$ distinct rotations.
Given a derangement $D$, let $f(D)$ denote the number of distinct rotations of $D$ that are also derangements. For example, $f([2, 1]) = 1$, $f([3, 1, 2]) = 2$.
Given $n$ and a prime number $p$, count the number of derangements $D$ of ${1, 2, \ldots , n}$ such that $f(D) = n-2$, modulo $p$.
Input
The single line of input contains two integers $n$ ($3 \le n \le 10^6$) and $p$ ($10^8 \le p \le 10^9+7$), where $n$ is a permutation size, and $p$ is a prime number.
Output
Output a single integer, which is the number of derangements $D$ of size $n$ with $f(D) = n-2$, modulo $p$.
Sample Input 1 | Sample Output 1 |
---|---|
3 1000000007 |
0 |
Sample Input 2 | Sample Output 2 |
---|---|
6 999999937 |
20 |