#include<bits/stdc++.h>
#define int long long
using namespace std;
const long long maxn=1e2+10,P=1000007;
int c,n;
int a[maxn];
int ans;
void DFS(int x,int last,int num){//x表示第几个花盆 , last表示上一盆花的种类 ,num表示当前这种花的个数
if(num>a[last])return ;//防止花的数量超出限制
if(x==c){//合法放好了c个花盆
ans++;
ans%=P;
return ;
}
for(int i=last;i<=n;i++){//枚举其他情况
if(i==last){
DFS(x+1,i,num+1);
}
else if(a[i]!=0)DFS(x+1,i,1);
}
}
signed main(){
cin>>n>>c;
for(int i=1;i<=n;i++){
cin>>a[i];//输入不多说
}
for(int i=1;i<=n;i++){
DFS(1,i,1);
}
cout<<ans;
return 0;
}
共 1 条回复
牛蛙