Partoburg 的居民经常违反交通规则,发生涉及滑板车的事故,并偷窃他人的滑板车。为了控制与滑板车相关的事件,Partoburg 的警长引入了一套滑板车登记系统。
每月的第一天,警长会选择一个自然数 $n$,并打印出所有可能的滑板车编号,格式为 $[a_1 + a_2 + \dots + a_k]$,其中 $a_1 + a_2 + \dots + a_k = n$,且自然数 $a_i$ 按非递减顺序排列:$a_1 \le a_2 \le \dots \le a_k$。每个编号都是唯一的:不会有两个滑板车拥有相同的编号。这些编号会被分配给滑板车车主。如果车主在某个月没有获得编号,则该月不能使用滑板车。
警长本人也骑滑板车出行。为了便于识别他的滑板车,它拥有一个特殊的编号格式。警长的滑板车编号是一个通过以下方式计算出的单一数字:对于本月所有的滑板车编号 $[a_1 + a_2 + \dots + a_k]$,计算其 $\text{mex}\{a_1, a_2, \dots, a_k\}$ 值——即该编号中缺失的最小自然数。将这些值求和。警长的滑板车编号即为该总和除以 $10^9 + 7$ 的余数。
警长想要自动化滑板车编号分配系统,并从他自己的滑板车开始。本月他选择了数字 $n$。请帮助确定他的滑板车将获得什么编号。
输入格式
输入的第一行包含一个自然数 $n$ —— 警长本月选择的数字 ($1 \le n \le 1000$)。
输出格式
输出一个整数 —— 警长的滑板车编号:一个介于 $0$ 到 $10^9 + 6$ 之间的整数,即本月所有滑板车编号的 $\text{mex}$ 值之和除以 $10^9 + 7$ 的余数。
样例
样例输入 1
1
样例输出 1
2
样例输入 2
3
样例输出 2
6
说明
在第一个样例中,$n = 1$。唯一可能的编号是 $[1]$。在这种情况下,警长的滑板车编号为 $\text{mex}\{1\} = 2$。
在第二个样例中,$n = 3$。所有可能的编号为 $[1 + 1 + 1]$,$[1 + 2]$,$[3]$。在这种情况下,警长的滑板车编号为 $\text{mex}\{1, 1, 1\} + \text{mex}\{1, 2\} + \text{mex}\{3\} = 2 + 3 + 1 = 6$。