#pragma GCC target("avx2") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #include using namespace std; #define int long long int int_pow(int x, int n, int MOD) { int ret = 1; while (n > 0) { if (n & 1) ret = ret * x % MOD; x = x * x % MOD; n >>= 1; } return ret; } signed main(){ int N,M; cin>>N>>M; vector A(M+1),B(N); for(int i=0;i>x; B[i]=x; for(int j=1;j*j<=x;j++){ if(x%j == 0){ A[j]++; if(j*j != x) A[x/j]++; } } } bool ok = true; for(int i=1;i S(M+1); for(int i=M;i>0;i--){ S[i] += int_pow(2,A[i],mod)-1; S[i] += 100*mod; S[i] %= mod; for(int j=1;j*j<=i;j++){ if(i%j == 0){ if(j == i) continue; S[j] -= S[i]; if(j*j != i && j != 1) S[i/j] -= S[i]; } } } for(int i=1;i<=M;i++) cout<<(S[i]+1000000*mod)%mod<