#arc160c. [arc160_c]Power Up

[arc160_c]Power Up

题目描述

你得到一个包含 NN 个正整数的多重集合:A=lbraceA1,A2,dots,ANrbraceA=\\lbrace A_1,A_2,\\dots,A_N \\rbrace

你可以重复任意次数(可能为零)执行以下操作。

  • 选择在 AA 中至少出现两次的正整数 xx。从 AA 中删除两次出现的 xx,并将 x+1x+1 添加一次到 AA 中。

找到最终可能的多重集合 AA 的数量,对 998244353998244353 取模。

约束条件

  • 1leNle2times1051 \\le N \\le 2 \\times 10^5
  • 1leAile2times1051 \\le A_i \\le 2 \\times 10^5

输入

输入以以下格式从标准输入给出:

NN A1A_1 A2A_2 dots\\dots ANA_N

输出

输出答案。


示例输入 1

4
1 1 2 4

示例输出 1

3

AA 最终可能的多重集合是 $\\lbrace 1,1,2,4 \\rbrace,\\lbrace 2,2,4 \\rbrace,\\lbrace 3,4 \\rbrace$ 中的一个。

你可以通过以下方式得到 A=lbrace3,4rbraceA = \\lbrace 3,4 \\rbrace

  • 选择 x=1x = 1。从 AA 中删除两个 11,并添加一个 22,使得 A=lbrace2,2,4rbraceA=\\lbrace 2,2,4 \\rbrace
  • 选择 x=2x = 2。从 AA 中删除两个 22,并添加一个 33,使得 A=lbrace3,4rbraceA=\\lbrace 3,4 \\rbrace

示例输入 2

5
1 2 3 4 5

示例输出 2

1

示例输入 3

13
3 1 4 1 5 9 2 6 5 3 5 8 9

示例输出 3

66