#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
const long long MOD = 1000000009ll;
long long n, a, b, k;
char x[N];
long long answer = 0;
long long binpow(long long number, long long power) {
  number %= MOD;
  long long ret = 1;
  long long num = number;
  while (power > 0) {
    if (power & 1ll) {
      ret *= num;
      ret %= MOD;
      power--;
    }
    num *= num;
    num %= MOD;
    power >>= 1ll;
  }
  return ret;
}
void solve() {
  cin >> n >> a >> b >> k;
  long long m = (n + 1) / k;
  for (int i = 0; i < k; i++) {
    cin >> x[i];
    long long now = 1;
    if (x[i] == '-') {
      now = MOD - 1ll;
    }
    now *= (binpow(a, n - i) * binpow(b, i)) % MOD;
    answer += now % MOD;
    answer %= MOD;
  }
  long long q = binpow(b, k) * binpow(binpow(a, k), MOD - 2);
  q %= MOD;
  if (q == 1) {
    q = m;
  } else {
    long long s1 = (MOD + 1 - binpow(q, m)) % MOD;
    long long s2 = binpow(MOD + 1 - q, MOD - 2);
    q = s1 * s2;
    q %= MOD;
  }
  answer *= q;
  answer %= MOD;
  cout << answer << endl;
}
void precalc() { return; }
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  ;
  precalc();
  int _ = 1;
  while (_--) {
    solve();
  }
  return 0;
}
