问题5393--跑步(running)

5393: 跑步(running)

[命题人 : ]
时间限制 : 2.000 sec  内存限制 : 256 MiB

题目描述

H 是一个热爱运动的孩子,某天他想给自己制定一个跑步计划。小 H 计划跑 n 米,其中第 i(i 1) 分钟要跑 xi米(xi 是正整数),但没有确定好总时长。由于随着跑步时间增加,小 H 会越来越累,所以小 H 的计划必须满足对于任意 i(i>1) x(i) x(i-1)。现在小 H 想知道一共有多少个不同的满足条件的计划,请你帮助他。两个计划不同当且仅当跑步的总时长不同,或者存在一个 i,使得两个计划中 xi 不相同。由于最后的答案可能很大,你只需要求出答案对 p 取模的结果。

输入

从文件 running.in 中读入数据。

仅一行两个整数 n,p 表示跑步距离与模数。

输出

输出到文件 running.out 中。

仅一行一个整数,表示答案模 109 + 7 的值。

样例输入 复制

4 44

样例输出 复制

5

提示

【样例1解释】

五个不同的计划分别是:{1,1,1,1}{2,1,1}{3,1}{2,2}{4}



【数据范围与提示】

对于所有测试点:1 n 105, 1 p < 230

每个测试点限制具体如下:

 

测试点编号

n

1

5

2

10

3

50

4

100

5

500

6

2000

7

5000

8

20000

9

50000

10

100000