#include<stdio.h>
struct qqt{
int sa;
int xa;
int ra;
int sb;
int xb;
int rb;
}s[10005];
int main(){
int a,n,m,x,q=0;
scanf("%d%d%d%d",&a,&n,&m,&x);
s[1].sa=s[1].ra=s[2].sb=s[2].xb=s[2].ra=1;
for(int i=3;i<=n;i++){
s[i].sa=s[i-1].sa+s[i-2].sa;
s[i].sb=s[i-1].sb+s[i-2].sb;
s[i].xa=s[i].xa+s[i-1].sa;
s[i].xb=s[i].xb+s[i-1].sb;
s[i].ra=s[i-1].ra+s[i-2].sa;
s[i].rb=s[i-1].rb+s[i-2].sb;
printf("%da+%db %da+%db %da+%db\n",s[i].sa,s[i].sb,s[i].xa,s[i].xb,s[i].ra,s[i].rb);
}
if(s[n].rb!=0) q=(m-(s[n].ra*a))/s[n].rb;
printf("%d",s[x].sa*a+s[x].sb*q);
return 0;
}