#include <bits/stdc++.h>
using namespace std;
const int mod =10e9+7;
int n,k,a[30];
int dp[(1<<26)];
int add(int a,int b){
int res=(a+b)%mod;
return res<0?res+mod:res;
}
int solve(int id, int mask){
if(id>=n) return 1;
if(dp[mask]!=-1) return dp[mask];
int cnt=0;
dp[mask]=0;
for (int i=0;i<id;i++){
if((mask>>i) & 1){
cnt++;
if(a[id]<a[i])
dp[mask]=add(dp[mask],solve(id+1,(mask ^ (1<<i)) | (1<<id)));
}
}
if(cnt<k) dp[mask]=add(dp[mask],solve(id+1,(mask | (1<<id))));
return dp[mask];
}
int main(){
cin>>n>>k;
for(int i =0;i<n;i++) cin>>a[i];
memset(dp,-1,sizeof dp);
cout<<solve(0,0);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgbW9kID0xMGU5Kzc7CgppbnQgbixrLGFbMzBdOwppbnQgZHBbKDE8PDI2KV07CgppbnQgYWRkKGludCBhLGludCBiKXsKICAgIGludCByZXM9KGErYiklbW9kOwogICAgcmV0dXJuIHJlczwwP3Jlcyttb2Q6cmVzOwp9CgppbnQgc29sdmUoaW50IGlkLCBpbnQgbWFzayl7CiAgICBpZihpZD49bikgcmV0dXJuIDE7CiAgICBpZihkcFttYXNrXSE9LTEpIHJldHVybiBkcFttYXNrXTsKICAgIGludCBjbnQ9MDsKICAgIGRwW21hc2tdPTA7CiAgICBmb3IgKGludCBpPTA7aTxpZDtpKyspewogICAgICAgIGlmKChtYXNrPj5pKSAmIDEpewogICAgICAgICAgICBjbnQrKzsKICAgICAgICAgICAgaWYoYVtpZF08YVtpXSkKICAgICAgICAgICAgICAgIGRwW21hc2tdPWFkZChkcFttYXNrXSxzb2x2ZShpZCsxLChtYXNrIF4gKDE8PGkpKSB8ICgxPDxpZCkpKTsKICAgICAgICB9CiAgICB9CiAgICBpZihjbnQ8aykgZHBbbWFza109YWRkKGRwW21hc2tdLHNvbHZlKGlkKzEsKG1hc2sgfCAoMTw8aWQpKSkpOwogICAgcmV0dXJuIGRwW21hc2tdOwp9CgppbnQgbWFpbigpewogICAgY2luPj5uPj5rOwoKICAgIGZvcihpbnQgaSA9MDtpPG47aSsrKSBjaW4+PmFbaV07CgogICAgbWVtc2V0KGRwLC0xLHNpemVvZiBkcCk7CgogICAgY291dDw8c29sdmUoMCwwKTsKCiAgICByZXR1cm4gMDsKfQ==