SAS002 - Apoorv and Math problem


Apoorv is an expert in maths .There are very few questions in maths that Apoorv is unable to answer. Apoorv's teacher is not very fond of Apoorv. So he decided to give Apoorv a  function value to calculate. Apoorv is unable to solve this problem and turns to you for help. Help him to find the answer to the function quickly. Apoorv's teacher will only check the final answer. So Apoorv is free to do calculate the value by any function he likes but the final answer should be same. Also as his teacher don't like him much he gave him a very strict time limit to solve the problem. Help Apoorv in finding the answer quickly.

The function given by Apoorv's teacher is as follows:

function(number) {
              answer = 1
              for ( each i from 1 to number) {
                   if( number modulo i is 0  ) {
                       answer=answer multiplied by i 
                   }
              }
              return answer
          }

Constraints

At max 100 numbers will be given by Apoorv's teacher. The value of number given by Apoorv's teacher will easily fit into 64 bit-integer and will always be positive.

Input

First line will contain t denoting t numbers that are given by Apoorv's teacher.

Next t lines will contain a single integer denoting the number.

Output

For each t numbers output the value of answer in new line. Since the value of answer can be very large Apoorv's teacher is fine with you reporting the answer modulo 109+7.

Example

Input:
2
1
2
Output: 1
2


Added by:sas1905
Date:2017-08-13
Time limit:1s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All
Resource:College Contests.