func_code_string: #include <bits/stdc++.h>   using namespace std;   long long res, d, e, k;   int N;   int h[2020];   long long dp[2020][2020];   long long pw(long long a, long long n) {     long long ret = 1;     while (n) {       if (n % 2) ret *= a, ret %= 998244353;       a *= a, a %= 998244353;       n >>= 1;     }     return ret;   }   long long C(long long n, long long r) {     if (r == 0 || r == n) return 1;     if (dp[n][r]) return dp[n][r];     return dp[n][r] = (C(n - 1, r - 1) + C(n - 1, r)) % 998244353;   }   int main() {     scanf( %d %d , &N, &k);     if (k == 1) return !printf( 0 );     for (int i = 0; i < N; i++) scanf( %d , &h[i]);     for (int i = 0; i < N; i++) {       if (h[i] == h[(i + 1) % N])         e++;       else         d++;     }     for (long long s = 0; s < d; s++) {       long long mul = 1;       mul *= pw(k - 2, s);       mul %= 998244353;       mul *= C(d, s);       mul %= 998244353;       long long sum = 0;       for (long long m = 0; m <= (d - s - 1) / 2; m++) {         sum += C(d - s, m);         sum %= 998244353;       }       mul *= sum;       mul %= 998244353;       res += mul;       res %= 998244353;     }     res *= pw(k, e);     res %= 998244353;     printf( %lld , res);     return 0;   }   