#include <cstdio>
#include <cstring>
#include <vector>
#define N 400010
#define mod 998244353
#define ll long long
using namespace std;
ll fac[N], p[N];
inline ll qpow(ll a, ll b){
ll base = a, ans = 1;
while(b){
if(b & 1){ ans *= base; ans %= mod; }
base *= base; base %= mod;
b >>= 1;
}
return ans;
}
void init(){
fac[0] = fac[1] = 1;
for(int i = 2 ; i <= N - 5 ; i++) fac[i] = fac[i - 1] * i % mod;
}
inline ll inv(ll x){ return qpow(x, mod - 2); }
inline ll C(ll x, ll y){
return fac[x] * inv(fac[y]) % mod * inv(fac[x - y]) % mod;
}
int n, k, a[N];
int c[N];
vector <int> v;
ll ans = 0;
void Solve(){
memset(c, 0, sizeof(c)); v.clear(); ans = 1;
scanf("%d%d", &n, &k);
for(int i = 1 ; i <= n ; i++){
scanf("%d", &a[i]); c[a[i]]++;
}
for(int i = 0 ; i <= N - 10 ; i++)
if(!c[i]) v.push_back(i);
for(int i = 1 ; i <= k ; i++)
ans += C(v[i - 1] + k - i, k - i + 1), ans %= mod;
printf("%lld\n", ans);
}
int main(){
init();
int T = 1; //; scanf("%d", &T);
while(T--)
Solve();
return 0;
}