#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 1597;
const int MAX_K = 1.1e5;
const long long MOD = 1e9 + 7;
long long sq(long long x) { return x * x % MOD; }
long long qpow(long long a, long long b) {
  return b ? sq(qpow(a, b / 2)) * (b & 1 ? a : 1) % MOD : 1;
}
long long inv(long long x) { return qpow(x, MOD - 2); }
int N, M, K;
long long P, Pex[MAX_N], Pex_pre[MAX_N], fac[MAX_K], ifac[MAX_K],
    FR[MAX_N][MAX_N], FL[MAX_N][MAX_N], Ftot[MAX_N];
long long comb(int n, int m) {
  return n >= m ? fac[n] * ifac[n - m] % MOD * ifac[m] % MOD : 0;
}
void init() {
  fac[0] = 1;
  for (int i = 1; i < MAX_K; i++) fac[i] = fac[i - 1] * i % MOD;
  ifac[MAX_K - 1] = inv(fac[MAX_K - 1]);
  for (int i = MAX_K - 1; i; i--) ifac[i - 1] = ifac[i] * i % MOD;
  scanf("%d%d", &N, &M);
  long long a, b;
  scanf("%lld%lld", &a, &b);
  P = a * inv(b) % MOD;
  scanf("%d", &K);
  for (int i = 0; i <= M; i++)
    Pex[i] = comb(K, i) * qpow(P, i) % MOD * qpow(MOD + 1 - P, K - i) % MOD;
  Pex_pre[0] = Pex[0];
  for (int i = 1; i <= M; i++) Pex_pre[i] = (Pex_pre[i - 1] + Pex[i]) % MOD;
  Ftot[0] = FR[0][M] = FL[0][1] = 1;
}
void solve() {
  for (int i = 1; i <= N; i++) {
    static long long FL_suf[MAX_N], FRP_pre[MAX_N], FR_pre[MAX_N],
        FLP_suf[MAX_N];
    memset(FL_suf, 0, sizeof(FL_suf));
    memset(FRP_pre, 0, sizeof(FRP_pre));
    memset(FR_pre, 0, sizeof(FR_pre));
    memset(FLP_suf, 0, sizeof(FLP_suf));
    for (int j = M; j >= 1; j--)
      FL_suf[j] = (FL_suf[j + 1] + FL[i - 1][j]) % MOD;
    for (int j = 1; j <= M; j++)
      FR_pre[j] = (FR_pre[j - 1] + FR[i - 1][j]) % MOD;
    for (int j = 1; j <= M; j++)
      FRP_pre[j] = (FRP_pre[j - 1] + Pex[j] * FR_pre[j]) % MOD;
    for (int j = M; j >= 1; j--)
      FLP_suf[j] = (FLP_suf[j + 1] + Pex[M - j + 1] * FL_suf[j]) % MOD;
    for (int j = 1; j <= M; j++) {
      FR[i][j] = Pex[M - j] *
                 ((Pex_pre[j - 1] * (Ftot[i - 1] + MOD - FL_suf[j + 1]) + MOD -
                   FRP_pre[j - 1]) %
                  MOD) %
                 MOD;
      FL[i][j] = Pex[j - 1] *
                 ((Pex_pre[M - j] * (Ftot[i - 1] + MOD - FR_pre[j - 1]) + MOD -
                   FLP_suf[j + 1]) %
                  MOD) %
                 MOD;
    }
    for (int j = 1; j <= M; j++) (Ftot[i] += FR[i][j]) %= MOD;
  }
  printf("%lld\n", Ftot[N]);
}
int main() {
  init();
  solve();
}
