A121004.小枫的密码锁
普及+/提高
官方
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
小枫、小午和小安三个人在玩一个解密游戏。
小枫设计了一个特殊的密码锁,锁上有 M 个数字按键,编号为 1 到 M。
密码是一个长度为 N 的序列,每个位置可以是 1 到 M 中的任意数字。
小枫还设定了一个约束规则,用长度为 M 的数组 X=(X1,X2,…,XM) 表示。
规则是:对于每个数字 B(1≤B≤M),在密码序列中,任意两次出现 B 之间(包括这两次出现的位置),都必须至少出现一次 XB。
换句话说,如果密码中有两个位置 l<r 都等于 B,那么在区间 [l,r] 内,必须至少有一个位置的值是 XB。
小午需要猜出所有可能的密码。小安负责统计一共有多少种不同的密码满足这个约束。
请你帮小安算出这个数量,并对 998244353 取模。
输入格式
第一行两个整数 M 和 N。
第二行 M 个整数 X1,X2,…,XM,每个 Xi 满足 1≤Xi≤M。
输出格式
输出一个整数,表示满足条件的密码个数,对 998244353 取模。
输入输出样例
输入#1
3 4 2 1 2
输出#1
14
说明/提示
数据范围
对于 100% 的测试数据,满足:1≤M≤10,1≤N≤104,1≤Xi≤M