给定一张 n 个节点的简单无向图,满足图中存在 k 个联通块,其中第i 个联通块的大小是
。每一个独立的联通块内所有节点两两相连。
你需要在图中新加入 k-1 条边,使得整张图联通。定义某种连边方案 T 的价值函数 val(T) 如下:
设该方案内,k 个联通块向外连出的边数分别为

,则
%3D%5Cprod%5Climits_%7Bi%3D1%7D%5Ekd_i!)
。
现在你需要求出所有可行连边方案的价值之和。由于这个数很大,你只需要输出它对 998244353 取模之后的结果即可。
输入描述:
第一行两个整数 n,k,表示节点的数量和联通块数;
第二行k个整数
,表示每个联通块的大小。
输出描述:
一行一个正整数,表示所有可行连边方案的价值之和,答案对 998244353 取模。
示例1
说明
连边方案共有两种,即连 (1,3) 或连 (2,3)。两种方案的价值均为 1×1=1,因此输出 2。
示例2
说明
可以证明可行的连边方案共有 15 种,它们的价值均为 1×1×2!=2,因此输出 30。
示例3
说明
可以证明可行的连边方案共有 16 种,其中价值为 1×2!×2!×1=4 的有 12 种,价值为 1×1×1×3!=6 的有 4 种,因此输出 4×12+6×4=72。
备注:
对于100%的数据,保证
且
。