#arc071d. [arc071_d]Infinite Sequence

[arc071_d]Infinite Sequence

题目描述

有多少个无限序列 a1,a2,...a_1, a_2, ... ,由 {1,...,n{1, ... ,n}} 组成,满足以下条件?

  • nn-个及之后的元素都相等。即,如果 nleqi,jn \\leq i,j,则 ai=aja_i = a_j
  • 对于每个整数 ii,紧随第 ii 个元素后面的 aia_i 个元素都相等。即,如果 i<j<kleqi+aii < j < k\\leq i+a_i,则 aj=aka_j = a_k

计算模 109+710^9+7 下的结果。

约束条件

  • 1n1061 \leq n \leq 10^6

输入格式

输入从标准输入给出,格式如下:

nn

输出格式

打印满足条件的序列的个数(模 109+710^9+7)。

示例

以下示例中,输入为:

2

输出为:

4

满足条件的四个序列是:

  • 1,1,1,...1, 1, 1, ...
  • 1,2,2,...1, 2, 2, ...
  • 2,1,1,...2, 1, 1, ...
  • 2,2,2,...2, 2, 2, ...

以下示例中,输入为:

654321

输出为:

968545283