CSES - Collecting Numbers Distribution
  • Time limit: 1.00 s
  • Memory limit: 512 MB

You are given an array that contains each number between 1n1 \dots n exactly once. You collect the numbers in increasing order from 11 to nn. On each round, you traverse the array from left to right and collect as many consecutive numbers as possible, starting from the smallest number that has not been collected yet.

Your task is to determine, for each k=1,2,,nk=1,2,\dots,n, the number of arrays that require exactly kk rounds to collect all the numbers.

Input

The only line has an integer nn.

Output

Print nn numbers: for each k=1,2,,nk=1,2,\dots,n, the answer modulo 109+710^9+7.

Constraints

  • 1n50001 \le n \le 5000

Example

Input:

3

Output:

1
4
1

Explanation: The arrays are [1,2,3][1,2,3] (11 round), [1,3,2][1,3,2] (22 rounds), [2,1,3][2,1,3] (22 rounds), [2,3,1][2,3,1] (22 rounds), [3,1,2][3,1,2] (22 rounds), and [3,2,1][3,2,1] (33 rounds).