#include #include #define mo 1000000000000000000ll using namespace std; int n,K,a[110]; long long f[110][110][2],ans[2]; int main() { while(scanf("%d%d",&n,&K)!=EOF) { ans[1]=ans[0]=0; memset(f,0,sizeof(f)); for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(int i=1;i<=n;i++) { f[i][1][0]=1; for(int k=1;ka[k]) { f[i][j+1][0]+=f[k][j][0]; if(f[i][j+1][0]>=mo)f[i][j+1][1]+=f[i][j+1][0]/mo,f[i][j+1][0]%=mo; f[i][j+1][1]+=f[k][j][1]; } ans[0]+=f[i][K][0]; if(ans[0]>=mo)ans[1]+=ans[0]/mo,ans[0]%=mo; ans[1]+=f[i][K][1]; } if(ans[1])printf("%I64d%I64d\n",ans[1],ans[0]); else printf("%I64d\n",ans[0]); } }