#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1000000009;
long long pwr(long long a, long long b) {
  if (b == 0) return 1;
  long long ret = pwr(a, b / 2);
  ret = (ret * ret) % MOD;
  if (b % 2 == 1) ret = (ret * a) % MOD;
  return ret;
}
long long inv(long long x) { return pwr(x, MOD - 2); }
long long n, a, b, k;
string ss;
long long x, q, l, s;
int main() {
  cin >> n >> a >> b >> k;
  cin >> ss;
  for (int i = 0; i < k; i++) {
    if (ss[i] == '+')
      x = (x + (pwr(a, n - i) * pwr(b, i)) % MOD) % MOD;
    else
      x = (x - (pwr(a, n - i) * pwr(b, i)) % MOD + MOD) % MOD;
  }
  q = pwr((b * inv(a)) % MOD, k);
  l = (n + 1) / k;
  s = (((pwr(q, l) - 1 + MOD) % MOD) * inv((q - 1 + MOD) % MOD)) % MOD;
  if (q == 1) s = l;
  cout << (x * s) % MOD << endl;
  return 0;
}
