//P1098 [NOIP1998]车站
#include<bits/stdc++.h>
using namespace std;
long long man[25],geton[25];
long long a,n,m,x;
const long long star=100000;
int main(){
// cin>>a>>n>>m>>x;
// geton[1]=man[1]=man[2]=a;
// geton[2]=0;
// for(int i=3;i<=n;i++){
// geton[i]=geton[i-1]+geton[i-2];
// man[i]+=geton[i-2];
// }
// for(int i=1;i<=n;i++){
// cout<<man[i]<<' ';
// }
// man[n]=0;
// for(int i=1;i<=n;i++){
// cout<<man[i]<<' ';
// }
//注释原因:忘整哪了
cin>>a>>n>>m>>x;
geton[1]=a;
man[1]=a;
man[2]=a;
geton[2]=star;
for(int i=3;i<=n;i++){
geton[i]=geton[i-1]+geton[i-2];
man[i]=man[i-1];
man[i]+=geton[i-2];
}
int y;
man[n]=man[n-1];
y=(m-(man[n]%star))/(man[n]/star);
cout<<man[x]/star*y+(man[x]%star)<<endl;
// for(int i=1;i<=n;i++){//由35-42为调试
// cout<<man[i]<<' ';
// }
// cout<<endl;
// for(int i=1;i<=n;i++){
// cout<<geton[i]<<' ';
// }cout<<y;
return 0;
}
/*
输入:
5
7
32
4
(1 :0+5=5
(2 :5+x-x;
(3 :5+(x+5)-x=10;
(4 :10+(x+5+x)-(x+5)=10+x;
(5 :(10+x)+(x+5)=15+2x;
(6 :(15+2x)+(x+5+x)=20+4x;
(7 :32=20+4x,得出x=3;
故(4 =10+3=13
*/