func_code_string: #include <bits/stdc++.h>   using namespace std;   const long long mod = 1e9 + 9;   long long pow_mod(long long x, long long n) {     long long res = 1;     while (n) {       if (n & 1) res = res * x % mod;       n >>= 1;       x = x * x % mod;     }     return res;   }   long long inv(long long x) { return pow_mod(x, mod - 2); }   int main() {     long long n, a, b, k;     string s;     while (cin >> n >> a >> b >> k) {       cin >> s;       long long ans = 0;       for (long long i = 0; i < k; i++) {         if (s[i] ==  + )           ans = ((ans + pow_mod(a, n - i) * pow_mod(b, i)) % mod + mod) % mod;         else           ans = ((ans - pow_mod(a, n - i) * pow_mod(b, i)) % mod + mod) % mod;       }       long long m = (n + 1) / k;       long long q = pow_mod(b, k) * inv(pow_mod(a, k)) % mod;       if (q == 1)         ans = ans * m % mod;       else {         ans = ans * (1 - pow_mod(q, m)) % mod;         ans = ans * inv(1 - q) % mod;       }       cout << (ans + mod) % mod << endl;     }     return 0;   }   