4456 - 小Z爬华山

华山一直是小Z向往的地方。

假设华山共有n个台阶,小Z一步可以跨1个、2个或者3个台阶,请你输出小Z最终爬到山顶的方案数。

小Z认为这非常简单,直接递推即可,但是小Y突然走到小Z面前,得意地说:“小Z,我在m个台阶上分别放了陷阱,这些台阶是不能踏上去的,请你输出方案数。”

由于方案数会很大,所以结果需要模100003。若无法走到,则输出“-1”。

聪明的小Z怎么会被难倒,他自然知道做法,但是他把问题交给了你

输入

第一行包含两个数n和m,用空格隔开。

接下来的一行,共m个数字,表示放置陷阱的台阶位置。1≤m<n≤1000

输出

输出每组测试数据的方案数。

样例

输入

5 1
4

输出

6

来源

实战笔记

时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题