#arc114b. [arc114_b]Special Subsets

[arc114_b]Special Subsets

問題文

11 以上 NN 以下の整数すべてから成る集合を SS とします.

ffSS から SS への関数であり,f(1),f(2),cdots,f(N)f(1), f(2), \\cdots, f(N) の値が f1,f2,cdots,fNf_1, f_2, \\cdots, f_N として与えられます.

SS の空でない部分集合 TT であって,次の両方の条件を満たすものの個数を 998244353998244353 で割った余りを求めてください.

  • 全ての ainTa \\in T について f(a)inTf(a) \\in T である.

  • 全ての a,binTa, b \\in T について aneqba \\neq b ならば f(a)neqf(b)f(a) \\neq f(b) である.

制約

  • 1leqNleq2times1051 \\leq N \\leq 2 \\times 10^5
  • 1leqfileqN1 \\leq f_i \\leq N
  • 入力は全て整数

入力

入力は以下の形式で標準入力から与えられる.

NN f1f_1 f2f_2 ldots\\ldots fNf_N

出力

SS の空でない部分集合であって,両方の条件を満たすものの個数を 998244353998244353 で割った余りを出力せよ.


入力例 1

2
2 1

出力例 1

1

f(1)=2,f(2)=1f(1) = 2, f(2) = 1 です.f(1)neqf(2)f(1) \\neq f(2) であるため条件の 22 つ目は常に満たしますが,11 つ目の条件より 1,21, 2 は同時に TT に入っている必要があります.


入力例 2

2
1 1

出力例 2

1

f(1)=f(2)=1f(1) = f(2) = 1 です.11 つ目の条件のため 11TT に属する必要があり,さらに 22 つ目の条件により 22TT に属することはできません.


入力例 3

3
1 2 3

出力例 3

7

f(1)=1,f(2)=2,f(3)=3f(1) = 1, f(2) = 2, f(3) = 3 です.11 つ目の条件も 22 つ目の条件も常に満たされるため,SS の空でない部分集合全てが条件を満たします.