#include using namespace std; #define int long long const int mod=1000000007; const int ps[]={2,3,5,7,11,13}; const int cs[]={4,6,8,9,10,12}; typedef vectorvec; typedef vectormat; mat mul(mat A,mat B){ mat C(A.size(),vec(B[0].size())); for(int i=0;i>=1; } return B; } const int SIZE=130; int N,P,C; int dp[10][10][200]; int f[200]; signed main(){ cin>>N>>P>>C; dp[0][0][0]=1; for(int i=0;i<6;i++){ for(int j=0;j<=P;j++){ for(int k=0;k<200;k++){ for(int l=0;l+j<=P;l++){ if(k+ps[i]*l<200)dp[i+1][j+l][k+ps[i]*l]=(dp[i+1][j+l][k+ps[i]*l]+dp[i][j][k])%mod; } } } } for(int i=0;i<10;i++){ for(int j=0;j<10;j++){ for(int k=0;k<200;k++){ if(i==0&&j==0)dp[0][0][k]=dp[6][P][k]; else dp[i][j][k]=0; } } } for(int i=0;i<6;i++){ for(int j=0;j<=C;j++){ for(int k=0;k<200;k++){ for(int l=0;l+j<=C;l++){ if(k+cs[i]*l<200)dp[i+1][j+l][k+cs[i]*l]=(dp[i+1][j+l][k+cs[i]*l]+dp[i][j][k])%mod; } } } } for(int i=0;i<200;i++)f[i]=dp[6][C][i]; mat A(SIZE,vec(SIZE)); mat X(SIZE,vec(1)); X[0][0]=1; for(int i=0;i