#include <bits/stdc++.h>
using namespace std;
long long mo = 1000000000 + 9;
long long modulo(long long a, long long m) {
  long long r = a % m;
  if (r < 0) {
    r += m;
  }
  return r;
}
long long add(long long a, long long b) { return modulo(a + b, mo); }
long long prod(long long a, long long b) { return modulo(a * b, mo); }
long long exp(long long a, long long e) {
  if (e == 0) {
    return 1;
  } else {
    long long m = e / 2;
    long long base = exp(a, m);
    long long answer = prod(base, base);
    if (e % 2 == 1) {
      answer = prod(answer, a);
    }
    return answer;
  }
}
long long inverse_modulo(long long a, long long p) { return exp(a, p - 2); }
char word[100005];
long long sign(char x) {
  if (x == '+') {
    return 1;
  } else {
    return -1;
  }
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  long long n, a, b, k;
  cin >> n >> a >> b >> k;
  cin >> word;
  long long final_answer;
  long long component = exp(a, n);
  long long component_multiplier = 1;
  component_multiplier = prod(component_multiplier, b);
  component_multiplier = prod(component_multiplier, inverse_modulo(a, mo));
  long long cur_com = component;
  long long base = prod(cur_com, sign(word[0]));
  for (long long i = 1; i < k; ++i) {
    cur_com = prod(cur_com, component_multiplier);
    base = add(base, prod(cur_com, sign(word[i])));
  }
  long long multiplier = 1;
  multiplier = prod(multiplier, exp(b, k));
  multiplier = prod(multiplier, exp(inverse_modulo(a, mo), k));
  long long times = (n + 1) / k;
  long long answer = base;
  long long master_multiplier = 1;
  if (multiplier != 1) {
    long long numerator = add(exp(multiplier, times), -1);
    long long denumerator = add(multiplier, -1);
    master_multiplier = prod(master_multiplier, numerator);
    master_multiplier =
        prod(master_multiplier, inverse_modulo(denumerator, mo));
  } else {
    master_multiplier = times;
  }
  final_answer = prod(answer, master_multiplier);
  cout << final_answer << "\n";
  return 0;
}
