#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 + 7;
const int MAX_N = 25;
int N, K, A[MAX_N];
int dp[1<<MAX_N];
int main() {
cin >> N >> K;
for(int i=0; i<N; i++)
cin >> A[i];
for(int L=(1<<N)-1; L>=0; L--) {
int num_seq = 0, highest_bit = -1, i;
for(int j=0; j<N; j++) {
if(L & 1<<j) { // if j in L
num_seq++;
highest_bit = j;
}
}
if(num_seq>K)
continue;
i = highest_bit + 1;
if(i==N) {
dp[L] = 1;
continue;
}
dp[L] = 0;
for(int j=0; j<i; j++)
if(L & 1<<j)
if(A[i] < A[j])
dp[L] = (dp[L] + dp[L ^ 1<<j | 1<<i]) % MOD;
// (L ^ 1<<j) removes j from L if already present
// (L | 1<<i) adds i to L
if(num_seq<K)
dp[L] = (dp[L] + dp[L | 1<<i]) % MOD;
}
cout << dp[0] << endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKY29uc3QgaW50IE1PRCA9IDFlOSArIDc7CmNvbnN0IGludCBNQVhfTiA9IDI1OwogCmludCBOLCBLLCBBW01BWF9OXTsKaW50IGRwWzE8PE1BWF9OXTsKIAppbnQgbWFpbigpIHsKICAgIGNpbiA+PiBOID4+IEs7CiAgICBmb3IoaW50IGk9MDsgaTxOOyBpKyspCiAgICAgICAgY2luID4+IEFbaV07CiAgICAKICAgIGZvcihpbnQgTD0oMTw8TiktMTsgTD49MDsgTC0tKSB7CiAgICAgICAgaW50IG51bV9zZXEgPSAwLCBoaWdoZXN0X2JpdCA9IC0xLCBpOwogICAgICAgIGZvcihpbnQgaj0wOyBqPE47IGorKykgewogICAgICAgICAgICBpZihMICYgMTw8aikgeyAgICAgIC8vIGlmIGogaW4gTAogICAgICAgICAgICAgICAgbnVtX3NlcSsrOwogICAgICAgICAgICAgICAgaGlnaGVzdF9iaXQgPSBqOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmKG51bV9zZXE+SykKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgaSA9IGhpZ2hlc3RfYml0ICsgMTsKICAgICAgICBpZihpPT1OKSB7CiAgICAgICAgICAgIGRwW0xdID0gMTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGRwW0xdID0gMDsKICAgICAgICBmb3IoaW50IGo9MDsgajxpOyBqKyspCiAgICAgICAgICAgIGlmKEwgJiAxPDxqKQogICAgICAgICAgICAgICAgaWYoQVtpXSA8IEFbal0pCiAgICAgICAgICAgICAgICAgICAgZHBbTF0gPSAoZHBbTF0gKyBkcFtMIF4gMTw8aiB8IDE8PGldKSAlIE1PRDsKICAgICAgICAgICAgICAgICAgICAvLyAoTCBeIDE8PGopIHJlbW92ZXMgaiBmcm9tIEwgaWYgYWxyZWFkeSBwcmVzZW50CiAgICAgICAgICAgICAgICAgICAgLy8gKEwgfCAxPDxpKSBhZGRzIGkgdG8gTAogICAgICAgIGlmKG51bV9zZXE8SykKICAgICAgICAgICAgZHBbTF0gPSAoZHBbTF0gKyBkcFtMIHwgMTw8aV0pICUgTU9EOwogICAgfQogICAgCiAgICBjb3V0IDw8IGRwWzBdIDw8IGVuZGw7CiAgICAKICAgIHJldHVybiAwOwp9