You have a set $S$ of $n$ distinct integers between $1$ and $m$.
Each second you do the following steps:
- Pick an element
$x$in$S$uniformly at random. - Remove
$x$from$S$. - If
$x+1 \leq m$and$x+1$is not in$S$, add$x+1$to$S$.
What is the expected number of seconds until $S$ is empty?
Output the answer modulo $1\,000\,000\,007$.
Formally, let $P = 1\,000\,000\,007$. It can be shown that the answer can be expressed as an irreducible fraction $\frac{a}{b}$, where $a$ and $b$ are integers and $b \not \equiv 0 \pmod{P}$. Output the integer equal to $a \cdot b^{-1} \bmod P$. In other words, output an integer $z$ such that $0 \le z \lt P$ and $z \cdot b \equiv a \pmod{P}$.
Input
The first line contains two integers $n$ and $m$ ($1 \leq n \leq m \leq 500$) — the number of elements in the set $S$ and the upper bound on the value of the elements in $S$.
The second line contains $n$ integers $S_1,\,S_2,\,\dots,\,S_n$ ($1 \leq S_1 \lt S_2 \lt \ldots \lt S_n \leq m$) — the elements of the set $S$.
Output
Output a single integer — the expected number of seconds until $S$ is empty, modulo $1\,000\,000\,007$.
Note
For test 1, here is a list of all the possible scenarios and their probabilities:
$[1, 3]$(50% chance)$\to$$[1]$$\to$$[2]$$\to$$[3]$$\to$$[]$$[1, 3]$(50% chance)$\to$$[2, 3]$(50% chance)$\to$$[2]$$\to$$[3]$$\to$$[]$$[1, 3]$(50% chance)$\to$$[2, 3]$(50% chance)$\to$$[3]$$\to$$[]$
Adding them up, we get $\frac{1}{2}\cdot 4 + \frac{1}{4} \cdot 4 + \frac{1}{4} \cdot 3 = \frac{15}{4}$. We see that $750000009 \cdot 4 \equiv 15 \pmod{1\,000\,000\,007}$.
样例
2 3
1 3
750000009
5 10
1 2 3 4 5
300277731
5 10
2 3 6 8 9
695648216
1 100
1
100
题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。