# include <bits/stdc++.h>
# define x first
# define y second
using namespace std;
const int nmax = 1e6 + 5;
int a[nmax];
int b[nmax];
int c[nmax];
int s[nmax];
int v[nmax];
int main(void)
{
int n;
fscanf(fopen("curcubeu.in","r"),"%d%d%d%d\n",&n,a+1,b+1,c+1);
for (int i=2;i<n;++i) a[i]=(1LL*a[i-1]*i) % n,b[i]=(1LL*b[i-1]*i) % n,c[i]=(1LL*c[i-1]*i) % n;
for (int i=n-1;i;--i)
{
int p=min(a[i],b[i]);
int u=max(a[i],b[i]);
for (int j=p;j<=u;++j)
{
while (v[j] && v[j] <= u) j = v[j];
if (j<=u) s[j]=c[i],v[j]=u+1;
}
}
freopen("curcubeu.out","w",stdout);
for (int i=1;i<n;++i) printf("%d\n",s[i]);
return 0;
}