Function
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)
Total Submission(s): 0 Accepted Submission(s): 0
Problem Description
You are given a permutation a
from 0
to n−1
and a permutation b
from 0
to m−1
.
Define that the domain of function f
is the set of integers from 0
to n−1
, and the range of it is the set of integers from 0
to m−1
.
Please calculate the quantity of different functions f
satisfying that f(i)=bf(ai)
for each i
from 0
to n−1
.
Two functions are different if and only if there exists at least one integer from 0
to n−1
mapped into different integers in these two functions.
The answer may be too large, so please output it in modulo 109+7
.
Input
The input contains multiple test cases.
For each case:
The first line contains two numbers n,
m
. (1≤n≤100000,1≤m≤100000)
The second line contains n
numbers, ranged from 0
to n−1
, the i
-th number of which represents ai−1
.
The third line contains m
numbers, ranged from 0
to m−1
, the i
-th number of which represents bi−1
.
It is guaranteed that ∑n≤106,
∑m≤106
.
Output
For each test case, output "Case #x
: y
" in one line (without quotes), where x
indicates the case number starting from 1
and y
denotes the answer of corresponding case.
Sample Input
3 2
1 0 2
0 1
3 4
2 0 1
0 2 3 1
Sample Output
Case #1: 4
Case #2: 4