func_code_string: #include <bits/stdc++.h>   const int N = 100005;   using namespace std;   long long n, a, b, k;   char s[N];   long long mod = 1e9 + 9;   long long pow(long long a, long long b) {     long long ans = 1;     while (b) {       if (b & 1) ans = ans * a % mod;       b >>= 1;       a = a * a % mod;     }     return ans;   }   long long ex_gcd(long long a, long long b, long long &x, long long &y) {     if (!b) {       x = 1, y = 0;       return a;     }     long long tmp = ex_gcd(b, a % b, x, y);     long long t = x;     x = y;     y = t - (a / b) * x;     return tmp;   }   long long inv(long long x) {     long long a, b;     ex_gcd(x, mod, a, b);     return (a + mod) % mod;   }   int main() {     scanf( %lld%lld%lld%lld , &n, &a, &b, &k);     scanf( %s , s);     long long ans = 0, m = (n + 1) / k;     for (int i = 0; i < k; i++) {       long long x = pow(a, n - i), y = pow(b, i);       long long now = x * y % mod;       if (s[i] ==  + )         ans += now;       else         ans -= now;       ans = (ans + mod) % mod;     }     long long q = pow(inv(a), k) * pow(b, k) % mod;     if (q == 1)       ans = ans * m % mod;     else {       long long x = inv(q - 1) % mod;       ans = (ans * (pow(q, m) - 1) % mod) * x % mod;     }     ans = (ans + mod) % mod;     printf( %lld n , ans);     return 0;   }   