#include <bits/stdc++.h>
using namespace std;
const long long mod = 1e9 + 7;
const int maxn = 5000 + 5;
long long n;
long long k;
long long a[maxn];
long long dp[maxn][maxn];
long long poww(long long a, long long b) {
  long long base = a;
  long long ans = 1;
  while (b) {
    if (b & 1) {
      ans *= base;
      ans %= mod;
    }
    base *= base;
    base %= mod;
    b >>= 1;
  }
  return ans;
}
int main() {
  cin >> n >> k;
  long long _final = 1;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
    _final *= a[i];
    _final %= mod;
  }
  dp[0][1] = a[1];
  dp[1][1] = mod - 1;
  for (int i = 2; i <= n; i++) {
    dp[0][i] = dp[0][i - 1] * a[i];
    dp[0][i] %= mod;
    dp[0][i] += mod;
    dp[0][i] %= mod;
    for (int j = 1; j <= i; j++) {
      dp[j][i] = (dp[j][i - 1] * a[i] - dp[j - 1][i - 1]) % mod;
      dp[j][i] += mod;
      dp[j][i] %= mod;
    }
  }
  long long ans = 0;
  long long dd = 1;
  for (int i = 0; i <= n; i++) {
    long long w = k - i;
    if (w < 0) break;
    long long res = dp[i][n];
    res *= poww(n, w);
    res %= mod;
    res *= dd;
    res %= mod;
    dd *= w;
    dd %= mod;
    ans += res;
  }
  ans %= mod;
  ans *= poww(poww(n, k), mod - 2);
  ans %= mod;
  _final -= ans;
  _final %= mod;
  _final += mod;
  _final %= mod;
  cout << _final << endl;
}
