#include <bits/stdc++.h>
using namespace std;
const int p = 1e9 + 7;
int n, m, ps, pa, pb, k, dd[300002], fac[300002], inv[300002], finv[300002];
int F[1502], S[1502][1502], L[1502][1502];
inline int ksm(int d, int tk) {
  int ret = 1;
  while (tk) {
    if (tk & 1) ret = 1ll * ret * d % p;
    d = 1ll * d * d % p;
    tk >>= 1;
  }
  return ret;
}
inline int C(int nn, int mm) {
  if (nn < mm) return 0;
  if (mm == 0 || nn == mm) return 1;
  return 1ll * fac[nn] * finv[mm] % p * finv[nn - mm] % p;
}
int main() {
  scanf("%d%d%d%d%d", &n, &m, &pa, &pb, &k);
  ps = 1ll * pa * ksm(pb, p - 2) % p;
  fac[0] = finv[0] = fac[1] = finv[1] = inv[1] = 1;
  for (int i = 2; i <= 300000; i++) {
    inv[i] = 1ll * (p - p / i) * inv[p % i] % p;
    fac[i] = 1ll * fac[i - 1] * i % p;
    finv[i] = 1ll * finv[i - 1] * inv[i] % p;
  }
  for (int i = 0; i <= k; i++)
    dd[i] = 1ll * C(k, i) * ksm(ps, i) % p * ksm((1 - ps + p) % p, k - i) % p;
  S[0][m] = F[0] = 1;
  for (int i = 1; i <= n; i++) {
    int sd = 0, sm = 0;
    for (int r = 1; r <= m; r++) {
      sd = (sd + dd[r - 1]) % p;
      sm = (sm + 1ll * dd[r - 1] * L[i - 1][r] % p) % p;
      S[i][r] =
          1ll * dd[m - r] * (F[i - 1] - L[i - 1][m - r + 1] + p) % p * sd % p;
      S[i][r] = (S[i][r] - 1ll * dd[m - r] * sm % p + p) % p;
    }
    for (int r = 2; r <= m; r++) L[i][r] = (L[i][r - 1] + S[i][r - 1]) % p;
    for (int r = 1; r <= m; r++) F[i] = (F[i] + S[i][r]) % p;
  }
  printf("%d\n", F[n]);
}
