#include <bits/stdc++.h>
using namespace std;
const long long mod = 1000000007;
long long powmod(long long a, long long b) {
  long long res = 1;
  a %= mod;
  assert(b >= 0);
  for (; b; b >>= 1) {
    if (b & 1) res = res * a % mod;
    a = a * a % mod;
  }
  return res;
}
const int N = 10100;
int n;
long long poly[N], q[N], ret[N], k, ans;
int a[N];
int main() {
  scanf("%d%lld", &n, &k);
  poly[0] = 1;
  for (int i = 0; i < n; i++) {
    scanf("%d", a + i);
    for (int j = i + 1 - 1; j >= 0; j--)
      poly[j + 1] = (poly[j] + poly[j + 1]) % mod,
               poly[j] = poly[j] * (mod - a[i]) % mod;
  }
  for (int i = 0; i < n; i++) {
    for (int j = n + 1 - 1; j >= 0; j--) q[j] = poly[j];
    for (int j = n + 1 - 1; j >= 1; j--) {
      ret[j - 1] = (ret[j - 1] + q[j]) % mod;
      q[j - 1] = (q[j - 1] + q[j] * a[i]) % mod;
    }
  }
  long long coef = 1;
  for (int i = 0; i < n; i++) {
    coef = coef * (k - i) % mod;
    ans = (ans + powmod(n, mod - 2 - i) % mod * coef % mod *
                     powmod(i + 1, mod - 2) % mod * ret[i]) %
          mod;
  }
  ans = ans * powmod(mod - 1, n + 1) % mod;
  printf("%lld\n", ans);
}
