Subset Counting

Xem PDF

Điểm: 400 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Given a sequence of integers \(a_1,a_2,...,a_n\); find the number of sets \(S\) satisfying the following conditions:

  • \(S \sub \{1, 2, ..., n\}\)
  • \(\exist x \in S : a_x \in S\)
  • \(\exist y \in S : (\forall x \in S : a_x \ne y)\)

Since the result can be rather large, you should output it modulo \(998244353\).

Input

The input contains multiple test cases. Each test case is presented in two lines as below:

  • The first line contains an integer \(n (1 \le n \le 10^5 )\).
  • The second line contains \(n\) integers \(a_1,a_2,...,a_n (1 \le |a_i | \le n)\).

The input is terminated by a line with a single integer \(0\) which is not a test case. The sum of n over all test cases does
not exceed \(10^6\)
.

Output

For each test case, write the result on the single line.

Example

Test 1

Input
3
1 2 3
3
2 3 1
0
Output
0
6
Note

In the second test cases, 6 valid sets are {1};{2};{3};{1, 2};{2, 3};{3, 1}.


Bình luận

Không có bình luận nào.