#include typedef long long ll; typedef long double ld; using namespace std; const ll mod = 1e9+7; struct Matrix{ Matrix(ll A, ll B, ll C, ll D){ a = A%mod; b = B%mod; c = C%mod; d = D%mod; } Matrix operator *(const Matrix &Y){ return Matrix( (this->a*Y.a + this->b*Y.c)%mod, (this->a*Y.b + this->b*Y.d)%mod, (this->c*Y.a + this->d*Y.c)%mod, (this->c*Y.b + this->d*Y.d)%mod ); } ll a, b, c, d; }; Matrix mod_pow(Matrix X, ll p){ if(p==0) return Matrix(1,0,0,1); Matrix res = mod_pow(X*X, p/2); if(p%2==1) res = res * X; return res; } ll mod_pow(ll n, ll p, ll mod){ n %= mod; // return (n^p) % mod if(p==0) return 1; ll res = mod_pow(n*n%mod, p/2, mod); if(p%2==1) res = res * n % mod; return res; } int main(){ ll N, M, K, p, q; cin >> N >> M >> K >> p >> q; vector b(N); for(int i=0; i> b[i]; ll A = ((q-p) * mod_pow(q, mod-2, mod))%mod; ll B = (p * mod_pow(q, mod-2, mod))%mod; Matrix X = Matrix(A, B, B, A); Matrix Y = mod_pow(X, K); ll ans = 0; for(int i=0; i