import sys
import numpy as np
import numba
from numba import njit, b1, i4, i8, f8
read = sys.stdin.buffer.read
readline = sys.stdin.buffer.readline
readlines = sys.stdin.buffer.readlines
MOD = 998_244_353
def from_read(dtype=np.int64):
return np.fromstring(read().decode(), dtype=dtype, sep=' ')
def from_readline(dtype=np.int64):
return np.fromstring(readline().decode(), dtype=dtype, sep=' ')
@njit((i8[:], i8), cache=True)
def main(A, K):
S = np.zeros(K + 1, np.int64)
for a in A:
a %= MOD
p = 1
for k in range(0, K + 1):
S[k] += p
S[k] %= MOD
p = p * a % MOD
C = np.zeros((K + 1, K + 1), np.int64)
C[0, 0] = 1
pow2 = np.ones(K + 1, np.int64)
for n in range(1, K + 1):
pow2[n] = pow2[n - 1] * 2 % MOD
for n in range(1, K + 1):
C[n] += C[n - 1]
C[n, 1:] += C[n - 1, :-1]
C[n] %= MOD
for X in range(1, K + 1):
ans = 0
for i in range(X + 1):
ans += C[X, i] * S[i] % MOD * S[X - i] % MOD
ans -= pow2[X] * S[X] % MOD
if ans & 1:
ans += MOD
ans //= 2
ans %= MOD
print(ans)
N, K = map(int, readline().split())
A = from_read()
main(A, K)