编程题
### 问题描述
扫雷是一款经典的游戏。如下图:

规则如下。
1. 地图为 $n \times m$ 的矩阵。
2. 地图中包含地雷和数字。
3. 如果某个点是地雷块,那么用 `X` 表示。
4. 如果某个点是数字块,那么用 $0 \sim 8$ 表示,具体的数值为该点周围地雷的数量(最少为 $0$ 个,最多为 $8$ 个)。
5. 如果某个点未知,即可能是地雷或者数字,我们用 `*` 表示。
**周围**:对于 $(x,y)$ 点来说,周围为 $(x-1, y),(x+1, y),(x, y-1),(x, y+1),(x-1, y-1),(x-1, y+1),(x+1, y-1),(x+1, y+1)$ 八个位置。需要注意的是,**超过边界的点不能算作周围的点**。
小蓝是扫雷高手,于是他在原来扫雷游戏的基础上改动了一下。
现在给定你一个 $3 \times m$ 的地图,其中第二行全部都不是地雷,第一行和第三行都是未知,小蓝将第二行的数字全部告诉你,请问这幅地图有多少种不同的可能?
也就是说,假设每个格子有 $10$ 种情况(`X` 或者 $0 \sim 8$),那么 $3 \times m$ 的地图总共有 $10^{3m}$ 情况,请你找出满足以下两个要求的地图数量:
1. 地图合法,即满足扫雷规则。
2. 第二行与给定第二行的值相同。
答案可能很大,请对 $998244353$ 取模。
### 输入格式
第一行输入一个整数 $m$。
第二行输入 $m$ 个整数 $p_1, p_2, p_3, ..., p_m$,代表第地图中 $2$ 行第 $i$ 列的值。
### 输出格式
输出一个整数,代表可能的种类数,答案可能很大,请对 $998244353$ 取模。
### 样例输入
```bash
3
2 3 2
```
### 样例输出
```bash
8
```
### 说明
以下 $8$ 种。
```bash
XX1 01X XXX 000 X2X 1X1 1XX X10
232 232 232 232 232 232 232 232
01X XX1 000 XXX 1X1 X2X X10 1XX
```
### 评测数据范围
$1 \le n \le 5 \times 10^5,0 \le p_i \le 8$。