#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int x,y,z;
int a(int z){
if(z<x+2){
return 1;
}
return a(z-1)+a(z-x-2)*y;//a(n-1)*n
}
int main(){
int c;
cin>>x>>y>>z;
c=a(z);
cout<<a(z);
return 0;
}
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
long long a[60],b[60];
// 1个月产2个卵8个月后成虫个数
// 月份 成虫 卵 卵成虫月份
// 1 1 0
// 2 1 2 -4
// 3 1 2 -5
// 4 3 2 -6
// 5 5 6 -7
// 6 7 10 -8
// 7 13 14 -9
// 8 23 26
// 9 37 46
int main(){
int x,y,z;
int i;
cin>>x>>y>>z;//x月产 y对卵 z个月后成虫
for(i=1;i<=x;i++){
a[i]=1;//第 i个月成虫
b[i]=0;//第 i个月卵
}
for(i=x+1;i<=z+1;i++){
//第 i-x 月的成虫在 x 个月后产下 y 个卵
a[i]=a[i-1]+a[i-x-2]*y;//第 i 个月的成虫等于第 i-1 个月的成虫加上 i-2 个月的卵
}
cout<<a[z+1]<<endl;
//cout<<b[z+1]; ??输出卵数
return 0;
}