#include<bits/stdc++.h>
using namespace std;
const int N=4e5+10;
typedef long long LL;
LL f[N];
const int mod=998244353;
int s[N];
unordered_map<int,int> h;
LL mul(LL a,LL b)
{
    return (a%mod)*(b%mod)%mod;
}
LL qmi(LL a,int b)
{
    LL res=1;
    while(b)
    {
        if(b&1) res=mul(res,a);
        a=mul(a,a);
        b>>=1;
    }
    return res;
}
LL C(int a,int b)
{
    return mul(mul(f[a],qmi(f[a-b],mod-2)),qmi(f[b],mod-2));
}
int main()
{
    f[0]=1;
    for(int i=1;i<N;i++) f[i]=mul(f[i-1],i);
    int cnt=0;
    int n,k;
    cin>>n>>k;
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&s[i]);
        h[s[i]]=i;
    }
    for(int i=1;i<n;i++)
    {
        if(h[s[i]+1]>h[s[i+1]+1]) cnt++;
    }
    //cout<<cnt<<endl;
    cout<<C(k-cnt+n-1,n);
}
