#include <bits/stdc++.h>
using namespace std;
const int MOD = 1000000007;
const int K = 100010;
const int N = 1510;
int n, m, a, b, kk;
long long fac[K], inv[K], P[K], Q[K];
long long f[N][N];
inline long long Pow(long long a, int x) {
  long long res = 1;
  for (; x; x >>= 1, a = a * a % MOD)
    if (x & 1) res = res * a % MOD;
  return res;
}
inline long long calc(int l) {
  return fac[kk] * inv[l] % MOD * inv[kk - l] % MOD * P[l] % MOD * Q[kk - l] %
         MOD;
}
int main() {
  cin >> n >> m >> a >> b >> kk;
  fac[0] = 1;
  for (int i = 1; i <= kk; i++) fac[i] = fac[i - 1] * i % MOD;
  inv[kk] = Pow(fac[kk], MOD - 2);
  for (int i = kk; i >= 1; i--) inv[i - 1] = inv[i] * i % MOD;
  P[0] = 1;
  P[1] = a * Pow(b, MOD - 2) % MOD;
  for (int i = 2; i <= kk; i++) P[i] = P[i - 1] * P[1] % MOD;
  Q[0] = 1;
  Q[1] = (b - a) * Pow(b, MOD - 2) % MOD;
  for (int i = 2; i <= kk; i++) Q[i] = Q[i - 1] * Q[1] % MOD;
  f[0][m] = 1;
  for (int i = 1; i <= n; i++) {
    long long s1 = 0, s2 = 0;
    for (int j = 0; j <= m; j++) {
      f[i][j] = (f[i - 1][m] * s1 - s2 - s1 * f[i - 1][m - j]) % MOD *
                calc(m - j) % MOD;
      (s1 += calc(j)) %= MOD;
      (s2 += f[i - 1][j] * calc(j)) %= MOD;
    }
    for (int j = 1; j <= m; j++) (f[i][j] += f[i][j - 1]) %= MOD;
  }
  cout << (f[n][m] + MOD) % MOD << endl;
  return 0;
}
