#include<stdio.h> #include<stdlib.h> int d[12][12][12][32]; int sum[12][12][12][32]; int main(void) { int i,j,u,v,p,q,n,m,vi,vj,vu,sump; scanf("%d%d%d%d",&q,&n,&m,&p); d[0][0][0][0]=1; sum[0][0][0][0]=1; for(int v=0;v<=p;v++) sum[0][0][0][v]=1; for(i=0;i<=q;i++) { for(j=0;j<=n;j++) { for(u=0;u<=m;u++) { for(v=1;v<=p;v++) { if(i+j+u<v) { d[i][j][u][v]=0; } else { sump=0; for(vi=0;vi<=i;vi++) { for(vj=0;vj<=j;vj++) { for(vu=0;vu<=u;vu++) { if((vi+vj+vu!=0)) { if(vi!=0) { if(v>=2) { sump=(sump+sum[vi-1][vj][vu][v-2]*d[i-vi][j-vj][u-vu][v])%11380; } sump=(sump+d[vi-1][vj][vu][v-1]*sum[i-vi][j-vj][u-vu][v])%11380; } else if(vj!=0) { if(v>=2) { sump=(sump+sum[0][vj-1][vu][v-2]*d[i][j-vj][u-vu][v])%11380; } sump=(sump+d[0][vj-1][vu][v-1]*sum[i][j-vj][u-vu][v])%11380; } else { if(v>=2) { sump=(sump+sum[0][0][vu-1][v-2]*d[i][j][u-vu][v])%11380; } sump=(sump+d[0][0][vu-1][v-1]*sum[i][j][u-vu][v])%11380; } } } } } d[i][j][u][v]=sump; } } for(v=1;v<=p;v++) { sum[i][j][u][v]=(sum[i][j][u][v-1]+d[i][j][u][v])%11380; } } } } printf("%d\n",d[q][n][m][p]); return 0; }