write a go solution for Description: You are given a permutation p of length n. Please count the number of permutations q of length n which satisfy the following: - for each 1<=i<n, max(q_1,ldots,q_i)neqmax(p_1,ldots,p_i). Since the answer may be large, output the answer modulo 998,244,353. Input Format: Each test contains multiple test cases. The first line contains the number of test cases t (1<=t<=10^4). The description of the test cases follows. The first line of each test case contains a single integer n (2<=n<=2*10^5). The second line of each test case contains n integers p_1,p_2,ldots,p_n (1<=p_i<=n). It is guaranteed that p is a permutation. It is guaranteed that the sum of n over all test cases does not exceed 2*10^5. Output Format: For each test case, print a single integer — the answer modulo 998,244,353. Note: In the first test case, p=[2,1]. The only suitable q is [1,2]. Indeed, we need to satisfy the inequality q_1neqp_1. It only holds for q=[1,2]. In the second test case, p=[1,2,3]. So q has to satisfy two inequalities: q_1neqp_1 and max(q_1,q_2)neqmax(1,2)=2. One can prove that this only holds for the following 3 permutations: - q=[2,3,1]: in this case q_1=2neq1 and max(q_1,q_2)=3neq2; - q=[3,1,2]: in this case q_1=3neq1 and max(q_1,q_2)=3neq2; - q=[3,2,1]: in this case q_1=3neq1 and max(q_1,q_2)=3neq2.. Output only the code with no comments, explanation, or additional text.