#include<bits/stdc++.h>
using namespace std;
#define int long long
#define double long double
#define endl "\n"
#define NAME "a"
const int MAXN = 1e3 + 5;
const int MAXK = 1e3 + 5;
const int inf = 1e18;
const int MOD = 1e9 + 7;
void FileInput(){
if(fopen(NAME".inp" , "r") == NULL)
freopen(NAME".inp" , "w" , stdout);
freopen(NAME".inp" , "r" , stdin);
freopen(NAME".out" , "w" , stdout);
}
int n , k;
int a[MAXN];
int f[MAXN][MAXK];
void solve(){
cin >> n >> k;
for(int i = 1 ; i <= n ; i++)
cin >> a[i];
f[0][0] = 1;
for(int i = 1 ; i <= n ; i++){
f[i][0] = 1;
for(int j = 1 ; j <= k ; j++){
f[i][j] = (f[i - 1][j - 1] * a[i] % MOD) + (f[i - 1][j] % MOD);
f[i][j] %= MOD;
// cout << i << " " << j << " " << f[i][j] << endl;
}
}
cout << f[n][k] << endl;
}
int32_t main(){
// FileInput();
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int t = 1;
// cin >> t;
while(t--)
solve();
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGludCBsb25nIGxvbmcKI2RlZmluZSBkb3VibGUgbG9uZyBkb3VibGUKI2RlZmluZSBlbmRsICJcbiIKI2RlZmluZSBOQU1FICJhIgoKY29uc3QgaW50IE1BWE4gPSAxZTMgKyA1Owpjb25zdCBpbnQgTUFYSyA9IDFlMyArIDU7CmNvbnN0IGludCBpbmYgPSAxZTE4Owpjb25zdCBpbnQgTU9EID0gMWU5ICsgNzsKCnZvaWQgRmlsZUlucHV0KCl7CiAgICBpZihmb3BlbihOQU1FIi5pbnAiICwgInIiKSA9PSBOVUxMKQogICAgICAgIGZyZW9wZW4oTkFNRSIuaW5wIiAsICJ3IiAsIHN0ZG91dCk7CiAgICBmcmVvcGVuKE5BTUUiLmlucCIgLCAiciIgLCBzdGRpbik7CiAgICBmcmVvcGVuKE5BTUUiLm91dCIgLCAidyIgLCBzdGRvdXQpOwp9CgppbnQgbiAsIGs7CmludCBhW01BWE5dOwppbnQgZltNQVhOXVtNQVhLXTsKCnZvaWQgc29sdmUoKXsKICAgIGNpbiA+PiBuID4+IGs7CiAgICBmb3IoaW50IGkgPSAxIDsgaSA8PSBuIDsgaSsrKSAgICAKICAgICAgICBjaW4gPj4gYVtpXTsKCiAgICBmWzBdWzBdID0gMTsKICAgIGZvcihpbnQgaSA9IDEgOyBpIDw9IG4gOyBpKyspewogICAgICAgIGZbaV1bMF0gPSAxOwogICAgICAgIGZvcihpbnQgaiA9IDEgOyBqIDw9IGsgOyBqKyspewogICAgICAgICAgICBmW2ldW2pdID0gKGZbaSAtIDFdW2ogLSAxXSAqIGFbaV0gJSBNT0QpICsgKGZbaSAtIDFdW2pdICUgTU9EKTsKICAgICAgICAgICAgZltpXVtqXSAlPSBNT0Q7CiAgICAgICAgICAgIC8vIGNvdXQgPDwgaSA8PCAiICIgPDwgaiA8PCAiICIgPDwgZltpXVtqXSA8PCBlbmRsOwogICAgICAgIH0KICAgIH0KCiAgICBjb3V0IDw8IGZbbl1ba10gPDwgZW5kbDsKfQoKaW50MzJfdCBtYWluKCl7CiAgIC8vIEZpbGVJbnB1dCgpOwogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTtjaW4udGllKDApO2NvdXQudGllKDApOwogICAgaW50IHQgPSAxOwogICAgLy8gY2luID4+IHQ7CiAgICB3aGlsZSh0LS0pCiAgICAgICAgc29sdmUoKTsKICAgIHJldHVybiAwOwp9