#L3081. 「2019 集训队互测 Day 5」简单计数

    ID: 3333 传统题 4000ms 512MiB 尝试: 27 已通过: 1 难度: 10 上传者: 标签>2019集训队互测数学DFT(含 NTT)及FFT分块及按大小分类

「2019 集训队互测 Day 5」简单计数

题目描述

CauchySheep 近期优化了他的 快速数论变换 (NTT) 模板的常数,现在他能在 0.1s0.1\text{s} 内轻松跑过 n=109n=10^9 了,所以他准备用下面的这个简单计数题也考验一下你的常数优化水平。

传说,在很久很久以前,有一张 nn 个点的带标号有向无环图。每条边有一个颜色,为 kk 种不同颜色中的一种。这张图满足如下性质:

  • 每个点有不超过 11 条出边
  • 每个点的入边条数在集合 SS

由于某种原因,你想知道这样的图的个数。由于这样的图可能很多,你只要输出答案对 998244353998244353 取模的值。

两个图不同当且仅当存在一条从某个点 aa 到某个点 bb 的有向边,它只在恰好一个图中出现,或在两个图中都出现但颜色不同。


输入格式

第一行依次输入三个用空格分隔的正整数,nnkkS|S|

接下来第二行从小到大输入 S|S| 个空格分隔的不同非负整数,表示 SS 集合中的元素。


输出格式

输出一行一个 [0,998244352][0,998244352] 的整数,表示符合题意的图的个数对 998244353998244353 取模的值。


样例 1

输入

3 1 2
0 1

输出

13

解释
有如下 1313 个符合题意的图,其中 aba \rightarrow b 表示一条从 aa 连向 bb 的有向边:

  • 没有边
  • 121 \rightarrow 2
  • 212 \rightarrow 1
  • 131 \rightarrow 3
  • 313 \rightarrow 1
  • 232 \rightarrow 3
  • 323 \rightarrow 2
  • 1231 \rightarrow 2 \rightarrow 3
  • 1321 \rightarrow 3 \rightarrow 2
  • 2132 \rightarrow 1 \rightarrow 3
  • 2312 \rightarrow 3 \rightarrow 1
  • 3123 \rightarrow 1 \rightarrow 2
  • 3213 \rightarrow 2 \rightarrow 1

样例 2

输入

8 2 3
0 2 3

输出

7497953

样例 3

输入

3000 2 3
0 1 3

输出

500207304

样例 4

输入

876543210 233 4
0 1 2 3

输出

467638557

数据范围与提示

对于所有数据,
1n9×1081 \leq n \leq 9 \times 10^8
1k1071 \leq k \leq 10^7
SS 集合非空,
SS 集合中所有元素为 [0,3][0,3] 的非负整数。

数据共分为 77 个子任务。

  • 子任务 1155 分):n8n \leq 8
  • 子任务 221010 分):n5000n \leq 5000
  • 子任务 333030 分):n105n \leq 10^5
  • 子任务 442020 分):n107n \leq 10^7
  • 子任务 551515 分):n108n \leq 10^8
  • 子任务 661010 分):S={0,1}S=\{0,1\}
  • 子任务 771010 分):无特殊限制。