N,M = map(int, input().split()) a = [0]*5001 nSk = [[0]*5005 for i in range(5005)] nSk[0][0] = 1 for i in range(1,5005): for j in range(1, 5005): nSk[i][j] = nSk[i-1][j-1] + j*nSk[i-1][j] nSk[i][j] %= 998244353 nCr = [0]*5001 fact = [1]*5001 temp = 1 for i in range(1,N+1): temp *= (M+i)*pow(i,-1,998244353)%998244353 temp %= 998244353 for i in range(5001): nCr[i] = temp temp *= (M+N+i+1)*pow(N+i+1,-1,998244353)%998244353 temp %= 998244353 for i in range(1,5001): fact[i] = i*fact[i-1]%998244353 for k in range(5001): for j in range(5001): a[k] += nCr[j]*(1 if (k+j)%2 == 0 else 998244352)%998244353*fact[j]%998244353*nSk[k+1][j+1]%998244353 if a[k] >= 998244353: a[k] -= 998244353 ans = 0 for k in list(map(int, input().split())): ans += a[k] if ans >= 998244353: ans -= 998244353 print(ans)