#include <bits/stdc++.h>
using namespace std;
const int maxn = 4006;
int a[maxn];
int n, k;
const long long mod = 998244353;
long long f[maxn][maxn];
bool d[maxn][maxn];
const int base = 2000;
void add(long long &u, long long v) {
  u += v;
  u %= mod;
}
long long dp(int I, int bal) {
  if (I >= n) {
    if (bal > 0)
      return 1;
    else
      return 0;
  } else if (d[I][bal + base])
    return f[I][bal + base];
  else {
    long long &res = f[I][bal + base];
    if (a[I] == a[(I + 1) % n]) {
      add(res, k * dp(I + 1, bal));
    } else {
      add(res, dp(I + 1, bal + 1));
      add(res, dp(I + 1, bal - 1));
      add(res, (k - 2) * dp(I + 1, bal));
    }
    d[I][bal + base] = true;
    return res;
  }
}
void enter() {
  cin >> n >> k;
  for (int i = (0), _b = (n); i < _b; ++i) cin >> a[i];
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie();
  cout.tie();
  enter();
  cout << dp(0, 0);
  return 0;
}
