/*
#include<cstdio>
#include<iostream>
#include<algorithm>
//#include<queue>
//#include<vector>
//#include<bits/stdc++.h>
#define ll long long
#define ddd printf("-----------------------\n");
using namespace std;
const int maxn=1e1 ;
int x,y,n,p;
void exgcd(int a,int b,int &x,int &y){
if(b==0){ x=1,y=0;return;}
exgcd(b,a%b,y,x); y-=(a/b)*x;
}
int main()
{
ios::sync_with_stdio(false);
cin>>n>>p;
for(int i=1;i<=n;i++)
{
x=0,y=0;
exgcd(i,p,x,y);
cout<<(x%p+p)%p<<endl;
}
return 0;
}*/
/*
//TLE_83分
#include<cstdio>
#define ll long long
using namespace std;
int n,p;
inline ll ksm(ll a,ll b){
ll ans=1;
a%=p;
while(b){
if(b&1) ans=ans*a%p;
a=a*a%p;
b>>=1;
}
return ans%p;
}
void write(ll x){
if(x<0) putchar('-'),x=-x;
if(x>9) write(x/10);putchar(x%10^48);
}
int main(){
scanf("%d%d",&n,&p);
for(int i=1;i<=n;i++)
write(ksm(i,p-2)),putchar('\n');
return 0;
}*/
#include<cstdio>
#include<iostream>
#include<algorithm>
//#include<queue>
//#include<vector>
#include<bits/stdc++.h>
#define ll long long
#define ddd printf("-----------------------\n");
using namespace std;
const int maxn=3e6+10 ;
ll n,p,inv[maxn];
int main()
{
//ios::sync_with_stdio(false);
cin>>n>>p;
inv[1]=1; cout<<inv[1]<<endl;
for(int i=2;i<=n;i++)
inv[i]=(p-p/i)*inv[p%i]%p,printf("%lld\n",inv[i]);
return 0;
}