#include <bits/stdc++.h>
using namespace std;
inline int gi() {
  int f = 1, sum = 0;
  char ch = getchar();
  while (ch > '9' || ch < '0') {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    sum = (sum << 3) + (sum << 1) + ch - '0';
    ch = getchar();
  }
  return f * sum;
}
const int N = 2010, M = 100010, Mod = 1e9 + 7;
int n, m, p, t, fac[M], inv[M], ifac[M], Sl[N][N], S1[M], S2[N][N], L[N][N],
    D[N];
int C(int n, int m) {
  if (n < m || m < 0 || n < 0) return 0;
  return 1ll * fac[n] * ifac[m] % Mod * ifac[n - m] % Mod;
}
int qpow(int a, int b) {
  int ret = 1;
  while (b) {
    if (b & 1) ret = 1ll * ret * a % Mod;
    b >>= 1;
    a = 1ll * a * a % Mod;
  }
  return ret;
}
int main() {
  n = gi();
  m = gi();
  p = gi();
  p = 1ll * p * qpow(gi(), Mod - 2) % Mod;
  t = gi();
  fac[0] = ifac[0] = inv[0] = inv[1] = ifac[1] = fac[1] = 1;
  for (int i = 2; i <= 100000; i++)
    fac[i] = 1ll * fac[i - 1] * i % Mod,
    inv[i] = 1ll * (Mod - Mod / i) * inv[Mod % i] % Mod,
    ifac[i] = 1ll * ifac[i - 1] * inv[i] % Mod;
  for (int i = 0; i <= min(m, t); i++)
    D[i] = 1ll * C(t, i) * qpow(p, i) % Mod * qpow((1 - p + Mod), t - i) % Mod;
  for (int i = 1; i <= m; i++) S1[i] = (S1[i - 1] + D[i - 1]) % Mod;
  Sl[0][m] = 1;
  L[0][m] = 1;
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++) {
      Sl[i][j] = 1ll * D[m - j] *
                 (1ll * (L[i - 1][m] - L[i - 1][m - j] + Mod) * S1[j] % Mod -
                  S2[i - 1][j] + Mod) %
                 Mod;
      L[i][j] = (L[i][j - 1] + Sl[i][j]) % Mod;
      S2[i][j] = (S2[i][j - 1] + 1ll * D[j - 1] * L[i][j - 1] % Mod) % Mod;
    }
  printf("%d\n", L[n][m]);
  return 0;
}
