#include <fstream>
using namespace std;
#define range(cnt, a, b, step, code) for(int cnt = a; cnt <= b; cnt += step){code;}
int N, A, B, C, v[10000001], aux[10000001], index[256];
int main()
{
ios_base::sync_with_stdio(false);
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
fin >> N >> A >> B >> C;
v[0] = B % C;
range(i, 1, N - 1, 1, v[i] = (1LL * A * v[i - 1] + B) % C);
range(byte, 0, 3, 1,
range(i, 0, 255, 1, index[i] = 0);
range(i, 0, N - 1, 1, index[ (v[i] >> (byte*8)) & 255 ]++);
range(i, 1, 255, 1, index[i] += index[i - 1]);
for(int i = N - 1; i >= 0; i--) aux[ --index[ (v[i] >> (byte*8)) & 255 ]] = v[i];
range(i, 0, N - 1, 1, v[i] = aux[i]);
);
range(i, 0, N - 1, 10, fout << v[i] << ' ');
}