Problem:
Score : 1000 points

Problem Statement

How many infinite sequences a_1, a_2, ... consisting of {{1, ... ,n}} satisfy the following conditions?

The n-th and subsequent elements are all equal. That is, if n \leq i,j, a_i = a_j.

For every integer i, the a_i elements immediately following the i-th element are all equal. That is, if i < j < k\leq i+a_i, a_j = a_k.

Find the count modulo 10^9+7.

Constraints

1 \leq n \leq 10^6

Input

Input is given from Standard Input in the following format:

n

Output

Print how many sequences satisfy the conditions, modulo 10^9+7.

Sample Input 1

2

Sample Output 1

4

The four sequences that satisfy the conditions are:

1, 1, 1, ...

1, 2, 2, ...

2, 1, 1, ...

2, 2, 2, ...

Sample Input 2

654321

Sample Output 2

968545283

Solution in Fortran (gfortran v4.8.4) (judge verdict: Accepted)

program infinite_sequence
  implicit none
  integer(8), parameter :: md = 1000000007_8
  integer(8) :: dp(0:1000000) = 0_8, m, s
  integer :: n, i
  read(*,*) n
  dp(1) = int(n,8)
  dp(2) = mod(int(n,8)*int(n,8),md)
  s = dp(1)+dp(2)
  m = mod(int(n-1,8)*int(n-1,8),md)
  do i = 3, n
    dp(i) = modulo(m+s+int(n-i+2,8)-dp(i-2),md)
    s = mod(s+dp(i),md)
  end do
  write(*,'(i0)') dp(n)
end program infinite_sequence