G. Ruined steps
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

Explorer Little A arrived at the prayer hall of the Astra ruins. The hall was built at a high location, and Little A needed to climb an ancient stone staircase consisting of $$$N$$$ steps. The step numbers ranged from $$$1$$$ to $$$N$$$. Little A started from the ground (which could be regarded as the $$$0$$$th step).

Little A has excellent physical fitness. Each time, he can choose to jump up across either one or two steps. However, due to the passage of time, some $$$M$$$-level steps have completely broken apart. Little A must not step on these broken steps.

Could you please calculate for Little A how many different ways there are for him to safely reach the $$$N$$$th step?

Input

The first line contains two integers, $$$N$$$ and $$$M$$$ ($$$1 \le N \le 50$$$, $$$0 \le M \le N$$$), representing the total number of steps and the number of broken steps respectively. The second line contains $$$M$$$ integers $$$b_1, b_2, \dots, b_M$$$ ($$$1 \le b_i \le N$$$), representing the numbers of the broken steps. It is guaranteed that these $$$M$$$ numbers are all distinct and are given in ascending order.

Output

Output a single integer, representing the number of different ways to reach the $$$N$$$-th step.

Examples
Input
4 1
2
Output
1
Input
5 0
Output
8
Input
3 3
1 2 3
Output
0
Note

If $$$N=4$$$ and $$$M=1$$$, the broken step is the second step.

Little A cannot step on the second level. The only legal way to proceed is: $$$0 \rightarrow 1 \rightarrow 3 \rightarrow 4$$$.