#include <bits/stdc++.h>
using namespace std;

#define MOD 1000000007
const int MAXN=1000000;

vector<int>spf(MAXN+1);

void build_spf(){
    for(int i=1;i<=MAXN;i++)
        spf[i]=i;

    for(int i=2;i*i<=MAXN;i++){
        if(spf[i]==i){
            for(int j=i*i;j<=MAXN;j+=i){
                if(spf[j]==j)
                    spf[j]=i;
            }
        }
    }
}

int main(){
    int N,M;
    cin>>N>>M;

    vector<int>A(N);
    for(int i=0;i<N;i++)
        cin>>A[i];

    build_spf();

    unordered_map<int,long long>factM;

    for(int x=2;x<=M;x++){
        int t=x;
        while(t>1){
            int p=spf[t];
            factM[p]++;
            t/=p;
        }
    }

    for(int i=0;i<N;i++){
        unordered_map<int,long long>mp=factM;
        int x=A[i];

        while(x>1){
            int p=spf[x];
            mp[p]++;
            x/=p;
        }

        long long ans=1;
        for(auto &it:mp){
            ans=(ans*(it.second+1))%MOD;
        }

        cout<<ans<<" ";
    }

    cout<<"\n";
    return 0;
}
