#include #include using namespace std; const int N = 1000010; int n, m, mulX, addX, mulY, addY, MOD, x[N], y[N], a[N], b[N], z[N], ans[N]; int main() { // freopen("friend.in", "r", stdin); // freopen("friend.out", "w", stdout); scanf("%d%d%d%d%d%d%d", &m, &n, &mulX, &addX, &mulY, &addY, &MOD); for (int i = 1; i <= m; ++i) scanf("%d", &x[i]); for (int i = 1; i <= m; ++i) scanf("%d", &y[i]); for (int i = 1; i <= m; ++i) scanf("%d", &a[i]); for (int i = 1; i <= m; ++i) scanf("%d", &b[i]); for (int i = 0; i < MOD; ++i) z[i] = 0; for (int i = m + 1; i <= n; ++i) { x[i] = (x[i - 1] * mulX + addX) % MOD; y[i] = (y[i - 1] * mulY + addY) % MOD; a[i] = (a[i - 1] * mulX + addX + MOD - 1) % MOD + 1; b[i] = (b[i - 1] * mulY + addY + MOD - 1) % MOD + 1; } for (int i = 1; i <= n; ++i) z[x[i]] += y[i]; int zor = 0; for (int i = 1; i <= n; ++i) { for (int j = a[i]; j < N; j += a[i]) ans[i] += z[j]; for (int j = a[i] * b[i]; j < N; j += a[i] * b[i]) ans[i] -= z[j]; zor ^= ans[i]; } for (int i = 1; i <= m; ++i) printf("%d\n", ans[i]); printf("%d\n", zor); return 0; }