编程题
### 问题描述
康康的牌堆一共有 $m + 1$ 张牌,因为最后一张牌是固定的,所以我们只考虑前 $m$ 张牌。
在这 $m$ 张牌中,有 $n$ 张特殊牌和 $m - n$ 张普通牌,每一个特殊牌有一个属性值 $w_i$,表示在打出这张牌后,可以再摸 $w_i$ 张牌。幸运的是,康康发现这些牌刚好满足 $\sum_{i=1}^n w_i = m$。因为这 $m$ 张牌是被打乱的,所以总共有 $m!$ 种不同的可能的牌堆。
现在这回合开始了,康康先从牌堆里抽出一张牌,接着康康不断地打出手中的牌,如果打出特殊牌,则又可以摸牌,直到摸到最后一张牌达成胜利条件或者打光自己的手牌结束自己的回合继而输掉比赛。
举例来说,如果牌堆是 $\\{ 4,0,0,2,0,0,0 \\}$(用 $0$ 表示普通牌,其他数字表示 $w_i$,其中最后一个 $0$ 是最后一个部件),那么康康打牌的过程可以为:
1. 取一张牌,手中的牌为 $\\{4 \\}$。
2. 打出 $\\{ 4 \\}$,再取四张牌,手中的牌为 $\\{ 0,0,2,0 \\}$。
3. 打出 $\\{ 2 \\}$,还需要再取两张,这时已摸到最后一个部件,康康胜利。
现在,康康想要知道这 $m!$ 种不同的牌堆中,有多少种能够让他胜利。
### 输入格式
第一行一个整数 $n$。
第二行 $n$ 个空格隔开的正整数 $w_i$。
### 输出格式
输出一个整数,表示答案对 $998244353$ 取模。
### 样例输入
```
1
5
```
### 样例输出
```
24
```
### 评测数据规模
$1 \leq n \leq 40$,$m \geq n + 4$,$1 \leq w_i \leq 10^5$。