P8533 [AtCoder] AtCoder Grand Contest 008 - Next or Nextnext
NOI
题目描述

You are given an integer sequence a of length N. How many permutations p of the integers 1 through N satisfy the following condition?

  • For each 1 ≤ i ≤ N, at least one of the following holds: p_i = a_i and p_{p_i} = a_i.

Find the count modulo 10^9 + 7.

Constraints

  • 1 ≤ N ≤ 10^5
  • a_i is an integer.
  • 1 ≤ a_i ≤ N

Input

The input is given from Standard Input in the following format:

N
a_1 a_2 ... a_N

Output

Print the number of the permutations p that satisfy the condition, modulo 10^9 + 7.

Examples

Input

3
1 2 3

Output

4

Input

2
1 1

Output

1

Input

3
2 1 1

Output

2

Input

3
1 1 1

Output

0

Input

13
2 1 4 3 6 7 5 9 10 8 8 9 11

Output

6

输入格式

见题面

输出格式

见题面

样例输入
2 1 1
样例输出
1