#include using namespace std; using ll = long long; //mi~mxからN個を重複なしで選ぶ vector> combinations(int N, int mi, int mx){ vector> res; vector idx; auto dfs=[&](auto self, int N, int mi, int mx, vector> &A)->void{ if (idx.size() == N){ A.push_back(idx); return; } else{ for (int i = mi; i <= mx; i++){ idx.push_back(i); self(self, N, i+1, mx, A); idx.pop_back(); } } }; dfs(dfs, N, mi, mx, res); return res; } int main(){ cin.tie(nullptr); ios_base::sync_with_stdio(false); int N, K, ans=0; cin >> N >> K; ll S; vector A(N); for (int i=0; i> A[i]; vector> v = combinations(K, 0, N-1); for (auto &x : v){ S = 0; for (auto y : x) S += A[y]; if (S % 998244353 <= S % 998) ans++; } ans %= 998; cout << ans << endl; return 0; }