Date
题号:NC244828
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

You are given a sequence named x of length n and an integer c. You will do the following operations to maintain a subset S of :

1. Let , if , then stop.

2. Choose a random integer i that and with equal probability.

3. Choose a random integer q that with equal probability, and if , choose a random integer in S with equal probability and delete it from S.

4. Add i into S.

5. Go to the operation 1.

Here, we use the following rules to determine B: if there's nothing in S, then ; else if it's possible to stop the procedure ( maybe after doing several operations in the future ) after adding i into S without deleting anything , then ; else .

You want to know the expected number of times to do the operation 2. Please print the answer in a single line modulo 998244353. It can be proved that the answer is a rational number, or you can never stop doing those operations.

Note: If your answer is , then you need to find a integer R such that . Print this R.

输入描述:

Two lines are given.

There are two integers n,c in the first line, satisfying .

And there are n integers in the second line. The i-th integer denotes x_i, satisfying .

输出描述:

A single line with a single integer, denoting your answer. If you can never stop doing those operations, then print `What is this?` in a line.
示例1

输入

复制
1 5
7

输出

复制
1
示例2

输入

复制
2 4
3 5

输出

复制
3
示例3

输入

复制
5 7
1 2 4 7 9

输出

复制
221561563
示例4

输入

复制
2 5
2 4

输出

复制
What is this?