#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 9;
int power(int a, int times) {
  int rt = 1, base = a;
  while (times) {
    if (times & 1) rt = (long long)rt * base % mod;
    base = (long long)base * base % mod;
    times >>= 1;
  }
  return rt;
}
const int maxn = 1e5 + 7;
int main() {
  static char s[maxn];
  int n, a, b, k;
  scanf("%d%d%d%d", &n, &a, &b, &k);
  int times = (n + 1) / k;
  scanf("%s", s);
  int inv_a = power(a, mod - 2);
  int inv_b = power(b, mod - 2);
  int head = power(a, n);
  int gap = (long long)power(b, k) * power(inv_a, k) % mod;
  int ans = 0;
  for (int i = 0; i < k; i++) {
    int flag = 1;
    if (s[i] == '-') flag = -1;
    if (gap == 1)
      ans = (ans + flag * (long long)head * times) % mod;
    else
      ans = (ans + flag * (long long)head * (1 - power(gap, times)) % mod *
                       power(1 - gap, mod - 2) % mod) %
            mod;
    head = (long long)head * b % mod * inv_a % mod;
  }
  cout << (ans + mod) % mod << endl;
  return 0;
}
