#include <bits/stdc++.h>
using namespace std;
#pragma warning(disable : 4996)
int n, x;
int d[100010];
long long e[100010], sum, r;
int power() {
  long long res = 1, pre = x;
  while (r) {
    if (r % 2 == 1) res *= pre;
    res %= 1000000007;
    pre *= pre;
    pre %= 1000000007;
    r /= 2;
  }
  return (int)res;
}
int main() {
  scanf("%d%d", &n, &x);
  for (int i = 0; i < n; i++) {
    scanf("%d", &d[i]);
    sum += d[i];
  };
  for (int i = 0; i < n; i++) e[i] = sum - d[i];
  sort(e, e + n);
  int p1 = 0, p2 = 0;
  e[n] = -1;
  while (p1 < n) {
    while (e[p1] == e[p2]) p2++;
    p2--;
    if ((p2 - p1 + 1) % x != 0) {
      r = e[p1];
      break;
    }
    for (int i = 0; i < (p2 - p1 + 1) / x; i++) e[p2 - i] = e[p1] + 1;
    p1 = p2 - (p2 - p1 + 1) / x + 1;
    p2 = p1;
  }
  r = min(r, sum);
  cout << power() << endl;
  return 0;
};
