#include using namespace std; typedef long long ll; #define REP(i,n) for(int i=0;i<(int)(n);i++) #define FOR(i,a,b) for(int i=(int)(a);i<(int)(b);i++) #define FORR(i,a,b) for(int i=(int)(b)-1;i>=(int)(a);i--) #define CHMIN(a,b) (a)=min((a),(b)) #define CHMAX(a,b) (a)=max((a),(b)) const ll MOD = 1000000007; ll modpow(ll a, ll b){ ll r = 1; while(b){ if(b&1)r=r*a%MOD; a=a*a%MOD; b>>=1; } return r; } ll modinv(ll a){return modpow(a,MOD-2);} int n,m,p; ll v[125252], vsum[125252]; ll fact[252521], ifact[252521]; int main(){ scanf("%d%d%d",&n,&m,&p); REP(i,n)scanf("%lld",v+i); sort(v,v+n); reverse(v,v+n); REP(i,n)vsum[i+1] = (vsum[i] + v[i]) % MOD; fact[0] = 1; FOR(i,1,252521)fact[i] = fact[i-1]*i%MOD; ifact[252520] = modinv(fact[252520]); FORR(i,0,252520)ifact[i] = ifact[i+1]*(i+1)%MOD; ll ans = 0; ll rest = 1; ll pp = p * modinv(100) % MOD; ll qq = (1 + MOD - pp) % MOD; REP(i,n){ // caught i fishes // -> i+m sequence // p^m * (1-p)^i * comb(i+m-1,i) ll po = modpow(pp,m) * modpow(qq,i) % MOD; po = po * fact[i+m-1] % MOD * ifact[m-1] % MOD * ifact[i] % MOD; rest = (rest + MOD - po) % MOD; ans = (ans + po * vsum[i] % MOD) % MOD; } (ans += rest * vsum[n] % MOD) %= MOD; printf("%lld\n",ans); return 0; }