#include <bits/stdc++.h>
using namespace std;
const int MAXN = 2e5 + 51, MOD = 1e9 + 7;
int n, kk, res, r, pw, rr, invl;
int x[MAXN], f[MAXN];
inline int read() {
  register int num = 0, neg = 1;
  register char ch = getchar();
  while (!isdigit(ch) && ch != '-') {
    ch = getchar();
  }
  if (ch == '-') {
    neg = -1;
    ch = getchar();
  }
  while (isdigit(ch)) {
    num = (num << 3) + (num << 1) + (ch - '0');
    ch = getchar();
  }
  return num * neg;
}
inline int qpow(int base, int exponent) {
  int res = 1;
  while (exponent) {
    if (exponent & 1) {
      res = (long long int)res * base % MOD;
    }
    base = (long long int)base * base % MOD, exponent >>= 1;
  }
  return res;
}
int main() {
  n = read(), kk = read(), res = f[0] = pw = rr = 1, invl = qpow(n, MOD - 2);
  for (register int i = 1; i <= n; i++) {
    x[i] = read(), res = (long long int)res * x[i] % MOD;
    for (register int j = i; j >= 0; j--) {
      f[j] = ((long long int)x[i] * f[j] + (MOD - f[j - 1])) % MOD;
    }
  }
  for (register int i = 0; i <= n; i++) {
    r = (r + (long long int)f[i] * pw % MOD * rr) % MOD,
    pw = (long long int)pw * invl % MOD,
    rr = (long long int)rr * (kk - i) % MOD;
  }
  printf("%d\n", (res - r + MOD) % MOD);
}
