#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define popcount __builtin_popcount using namespace std; typedef long long int ll; typedef pair P; int m, n, mulx, addx, muly, addy, mod; ll z[1<<24]; int a[1010], b[1010], x[1010], y[1010]; const int MAX=1<<24; bool isprime[MAX]; void sieve(){ for(ll i=3; i>m>>n>>mulx>>addx>>muly>>addy>>mod; sieve(); for(int i=1; i<=m; i++) cin>>x[i]; for(int i=1; i<=m; i++) cin>>y[i]; for(int i=1; i<=m; i++) cin>>a[i]; for(int i=1; i<=m; i++) cin>>b[i]; for(int i=1; i<=m; i++){ z[x[i]]+=y[i]; } ll x1=x[m], y1=y[m]; for(int i=m+1; i<=n; i++){ x1=((x1*mulx+addx)&(mod-1)); y1=((y1*muly+addy)&(mod-1)); z[x1]+=y1; } for(int i=2; i0; j-=i){ z[j/i]+=z[j]; } } ll ans=0; for(int i=1; i<=m; i++){ ll ans1=0; if(a[i]