ADADUNG - Ada and Manure


As you might know Ada the Ladybug is farmer. Last year, she sowed N distinct types of grain to N distinct places. This year she wants to seed the same types of grain again, yet there is a little problem: each type of grain needs special kind of manure, yet fertilizing soil with same kind of manure in consecutive years might destroy it.

Now she is asking you to count the number of ways, to seed N types of grain to N places in such way that no type of grain will be in its original place. Since this number might be pretty big, print it modulo 109+7.

Input

The first line contains 1 ≤ T ≤ 105 , number of test-cases.

Each of following T lines contains 1 ≤ N ≤ 107, number of types/places.

Output

For each test case, print the number of possibilities for given number of types/places modulo 1000000007.

Example Input

5
2
3
10
100
666

Example Output

1
2
1334961
944828409
769756093

hide comments
tarun_28: 2020-09-21 10:44:14

Bruteforce for pattern;)

aditya_rev: 2020-05-12 09:56:49

How do people optimize precompute so they reach running time under 0.5?

bmad_221: 2019-12-17 11:38:55

just go with @mag1x_

Asokan R: 2019-10-24 20:21:49

java -> TLE, same in cpp accepted

hacking_bot: 2018-09-08 15:10:32

Ez derangements question

mag1x_: 2018-05-29 13:58:10

calculated for first 5 numbers and looked for a pattern & bingo AC :D

holmesherlock: 2017-10-29 07:59:45

I tried precomputation using derangement formula but it gave me tle..:-(


Added by:Morass
Date:2017-02-11
Time limit:1s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All