from collections import defaultdict MOD = 998244353 N, M = map(int, input().split()) A = list(map(int, input().split())) dp = defaultdict(int) ndp = defaultdict(int) l, r = min(A[0], A[1]), max(A[0], A[1]) dp[(1, l)] = l%MOD dp[(l+1, r)] = (r-l)%MOD dp[(r+1, M)] = (M-r)%MOD for i in range(1, N): ndp = defaultdict(int) C = [] D = [] for j in range(-1, 2): if 0 <= i+j < N: D.append(A[i+j]) D.sort() C.append((1, D[0])) for j in range(1, len(D)): C.append((C[-1][1]+1, D[j])) C.append((C[-1][1]+1, M)) for (l1, r1), c in dp.items(): for l2, r2 in C: if r1 <= A[i-1] and r2 <= A[i] and (r1 < l2 or r2 < l1): continue if r1 <= A[i-1] and A[i] < l2 and A[i] < l1 and A[i-1] < l2: continue if A[i-1] < l1 and r2 <= A[i] and A[i-1] < l2 and A[i] < l1: continue ndp[(l2, r2)] += c*(r2-l2+1)%MOD ndp[(l2, r2)] %= MOD dp, ndp = ndp, dp ans = 0 p = pow(M, N-1, MOD) for a in A: ans += (M-a)*p%MOD ans %= MOD ans += pow(M, N, MOD) ans %= MOD ans -= sum(dp.values())%MOD ans %= MOD print(ans)