#include <bits/stdc++.h>
using namespace std;
int fr[100050], ifr[100050], dpl[1505][1505], dpr[1505][1505], sul[1505][1505],
    sur[1505][1505], n, m, a, b, p, k, su = 1, su1[1505], p1[100050],
                                       p2[100050];
int pw(int a, int p) {
  int as = 1;
  while (p) {
    if (p & 1) as = 1ll * as * a % 1000000007;
    a = 1ll * a * a % 1000000007;
    p >>= 1;
  }
  return as;
}
int main() {
  scanf("%d%d%d%d%d", &n, &m, &a, &b, &k);
  p = 1ll * a * pw(b, 1000000007 - 2) % 1000000007;
  fr[0] = ifr[0] = p1[0] = p2[0] = 1;
  for (int i = 1; i <= k; i++)
    fr[i] = 1ll * fr[i - 1] * i % 1000000007,
    ifr[i] = pw(fr[i], 1000000007 - 2),
    p1[i] = 1ll * p1[i - 1] * p % 1000000007,
    p2[i] = 1ll * p2[i - 1] * (1000000007 - p + 1) % 1000000007;
  dpl[0][m] = dpr[0][1] = sul[0][m] = sur[0][1] = 1;
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= m; j++)
      if (k - j + 1 >= 0)
        dpl[i][j] = (dpl[i][j - 1] +
                     1ll * sul[i - 1][j - 1] * fr[k] % 1000000007 * ifr[j - 1] %
                         1000000007 * ifr[k - j + 1] % 1000000007 * p1[j - 1] %
                         1000000007 * p2[k - j + 1]) %
                    1000000007,
        su1[j] = (su1[j - 1] + 1ll * fr[k] * ifr[j - 1] % 1000000007 *
                                   ifr[k - j + 1] % 1000000007 * p1[j - 1] %
                                   1000000007 * p2[k - j + 1]) %
                 1000000007;
      else
        dpl[i][j] = dpl[i][j - 1], su1[j] = su1[j - 1];
    for (int j = 1; j <= m; j++)
      if (k - m + j >= 0)
        dpl[i][j] =
            (1ll * (su - sur[i - 1][j + 1]) * fr[k] % 1000000007 * ifr[m - j] %
                 1000000007 * ifr[k - m + j] % 1000000007 * p1[m - j] %
                 1000000007 * p2[k - m + j] % 1000000007 * su1[j] % 1000000007 -
             1ll * dpl[i][j] * fr[k] % 1000000007 * ifr[m - j] % 1000000007 *
                 ifr[k - m + j] % 1000000007 * p1[m - j] % 1000000007 *
                 p2[k - m + j] % 1000000007 +
             1000000007) %
            1000000007;
    for (int j = 1; j <= m; j++)
      sul[i][j] = (sul[i][j - 1] + dpl[i][j]) % 1000000007;
    for (int j = m; j >= 1; j--)
      if (k - m + j >= 0)
        dpr[i][j] = (dpr[i][j + 1] +
                     1ll * sur[i - 1][j + 1] * fr[k] % 1000000007 * ifr[m - j] %
                         1000000007 * ifr[k - m + j] % 1000000007 * p1[m - j] %
                         1000000007 * p2[k - m + j]) %
                    1000000007,
        su1[j] = (su1[j + 1] + 1ll * fr[k] * ifr[m - j] % 1000000007 *
                                   ifr[k - m + j] % 1000000007 * p1[m - j] %
                                   1000000007 * p2[k - m + j]) %
                 1000000007;
      else
        dpr[i][j] = dpr[i][j + 1], su1[j] = su1[j + 1];
    for (int j = m; j >= 1; j--)
      if (k - j + 1 >= 0)
        dpr[i][j] =
            (1ll * (su - sul[i - 1][j - 1]) * fr[k] % 1000000007 * ifr[j - 1] %
                 1000000007 * ifr[k - j + 1] % 1000000007 * p1[j - 1] %
                 1000000007 * p2[k - j + 1] % 1000000007 * su1[j] % 1000000007 -
             1ll * dpr[i][j] * fr[k] % 1000000007 * ifr[j - 1] % 1000000007 *
                 ifr[k - j + 1] % 1000000007 * p1[j - 1] % 1000000007 *
                 p2[k - j + 1] % 1000000007 +
             1000000007) %
            1000000007;
    for (int j = m; j >= 1; j--)
      sur[i][j] = (sur[i][j + 1] + dpr[i][j]) % 1000000007;
    su = sur[i][1];
  }
  printf("%d\n", (su + 1000000007) % 1000000007);
}
