#include <cstdio>
#include <algorithm>
#define NMAX 1000005
using namespace std;
int a[NMAX],b[NMAX],c[NMAX],imobiliare[NMAX],next[NMAX];
int main()
{
freopen("curcubeu.in","r",stdin);
freopen("curcubeu.out","w",stdout);
int x,y,z,n;
scanf("%d%d%d%d",&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 >= 1 ; i--)
{
int st,dr;
st = min(a[i],b[i]);
dr = max(a[i],b[i]);
for(int j = st ; j <= dr ; j++)
{
if(imobiliare[j] == 0)
{
next[j] = dr+1;
imobiliare[j] = c[i];
}
else
{
j = next[j];
j--;
}
}
}
for(int i = 1 ; i < n ; i++)
printf("%d\n",imobiliare[i]);
return 0;
}