#include<iostream>
#include<string.h>
#include<stdio.h>
#include<math.h>
using namespace std;
typedef long long ll;
const ll mod=1000000009;
ll quick_mod(ll a,ll b)
{
ll ans=1;
while(b)
{
if(b&1)ans=(ans*a)%mod;
b>>=1;
a=(a*a)%mod;
}
return ans;
}
int main()
{
ll n,a,b,k;
char s[100005];
while(~scanf("%I64d%I64d%I64d%I64d",&n,&a,&b,&k))
{
ll j=(n+1)/k;
ll y=quick_mod((quick_mod(a,mod-2)*b)%mod,k);
scanf("%s",s);
ll sum=0;
for(int i=0;i<k;i++)
{
if(s[i]=='+')
sum=(sum+(quick_mod(a,n-i)*quick_mod(b,i))%mod+mod)%mod;
else
sum=(sum-(quick_mod(a,n-i)*quick_mod(b,i))%mod+mod)%mod;
}
if(y==1)
{
printf("%I64d\n",(sum*j)%mod);
}
else
{
ll z=(1-y+mod)%mod;
ll z_ni=quick_mod(z,mod-2);
ll y_j=quick_mod(y,j);
ll yy=(1-y_j+mod)%mod;
ll ans1=(yy*z_ni)%mod;
printf("%I64d\n",(sum*ans1)%mod);
}
}
}