""" p/q m,n<=10**5 m<=n k<=10**12 各粒が最終的にミルクティーの中にいる確率を求め、足し上げる。 ミルクティー中、キッチンのタピオカそれぞれまとめて計算 行列積のダブリングでOK A:v->v v=(x,y) x:ミルクティー中、y:キッチン中 A=((1-p/q,p/q),(p/q,1-p/q)) """ n,m,k,p,q=map(int,input().split()) b=[int(input()) for _ in range(n)] mod=10**9+7 # 行列積 def dot(mtr0,mtr1): a,b=len(mtr0),len(mtr1[0]) t=len(mtr0[0]) if t!=len(mtr1):return None ret=[[0]*b for _ in range(a)] for i in range(a): for j in range(b): tmp=0 for k in range(t): tmp+=mtr0[i][k]*mtr1[k][j] tmp%=mod ret[i][j]=tmp return ret # 使用例 # mtr:演算行列 # dp:dp行列。初期値として単位行列 dp=[[sum(b[:m])],[sum(b[m:])]] tmp=p*pow(q,mod-2,mod)%mod mtr=[[(1-tmp)%mod,tmp],[tmp,(1-tmp)%mod]] while k: if k&1: dp=dot(mtr,dp) k>>=1 mtr=dot(mtr,mtr) print(dp[0][0])