#include <bits/stdc++.h>
using namespace std;
int n, k;
long long a, b, sum, ans, summ;
char s[100010];
long long powe(long long x, int r) {
  long long ret = 1;
  while (r) {
    if (r & 1) ret = (ret * x) % 1000000009;
    x = x * x % 1000000009;
    r >>= 1;
  }
  return ret;
}
int main() {
  scanf("%d%lld%lld%d", &n, &a, &b, &k);
  scanf("%s", s);
  long long p = b * powe(a, 1000000009 - 2) % 1000000009, d = powe(a, n);
  for (int i = 0; i < k; ++i) {
    if ((n + 1) % k == i) summ = sum;
    if (s[i] == '+')
      sum = (sum + d) % 1000000009;
    else
      sum = (sum - d + 1000000009) % 1000000009;
    d = (d * p) % 1000000009;
  }
  p = powe(p, k);
  int bt = (n + 1) / k;
  if (p == 1)
    ans = sum * bt;
  else
    ans = sum * ((powe(p, bt) - 1 + 1000000009) % 1000000009) % 1000000009 *
          powe((p - 1 + 1000000009) % 1000000009, 1000000009 - 2) % 1000000009;
  summ = summ * powe(p, bt) % 1000000009;
  ans = ((ans + summ) % 1000000009 + 1000000009) % 1000000009;
  printf("%lld", ans);
  return 0;
}
