#include <iostream>
using namespace std;
/*学会利用预处理,减小时间复炸度*/
const int mod = 1000000007;
const int MAX_N = 1e6; // 根据题目可能的最大n值设定

// 预计算阶乘表
long long fact[MAX_N + 1];

// 初始化阶乘表
void precompute() {
    fact[0] = 1;
    for (int i = 1; i <= MAX_N; ++i) {
        fact[i] = fact[i - 1] * i % mod;
    }
}

int main() {
    // 提前计算所有可能用到的阶乘
    precompute();
    
    int t;
    cin >> t;
    while (t--) {
        long long n;
        cin >> n;
        // 直接从预计算的表中获取结果,O(1)操作
        cout << fact[n] << endl;
    }
    return 0;
}