← Home
package main

import (
	"fmt"
	"io"
	"os"
)

func power(base, exp int64) int64 {
	res := int64(1)
	base %= 998244353
	for exp > 0 {
		if exp%2 == 1 {
			res = (res * base) % 998244353
		}
		base = (base * base) % 998244353
		exp /= 2
	}
	return res
}

func nCr(n, r int) int64 {
	if r < 0 || r > n {
		return 0
	}
	if r > n-r {
		r = n - r
	}
	num := int64(1)
	den := int64(1)
	for i := 0; i < r; i++ {
		num = (num * int64(n-i)) % 998244353
		den = (den * int64(i+1)) % 998244353
	}
	return (num * power(den, 998244353-2)) % 998244353
}

func main() {
	buf, _ := io.ReadAll(os.Stdin)
	var idx int
	readInt := func() int {
		for idx < len(buf) && (buf[idx] < '0' || buf[idx] > '9') {
			idx++
		}
		if idx >= len(buf) {
			return 0
		}
		res := 0
		for idx < len(buf) && buf[idx] >= '0' && buf[idx] <= '9' {
			res = res*10 + int(buf[idx]-'0')
			idx++
		}
		return res
	}

	n := readInt()
	k := readInt()

	if n == 0 {
		return
	}

	p := make([]int, n)
	for i := 0; i < n; i++ {
		p[i] = readInt()
	}

	pos := make([]int, n+1)
	for i := 0; i < n; i++ {
		pos[p[i]] = i
	}
	pos[n] = -1

	c := 0
	for i := 0; i < n-1; i++ {
		if pos[p[i]+1] > pos[p[i+1]+1] {
			c++
		}
	}

	ans := nCr(k-c+n-1, n)
	fmt.Println(ans)
}