CF1976E Splittable Permutations

Description

Initially, we had one array, which was a permutation of size $ n $ (an array of size $ n $ where each integer from $ 1 $ to $ n $ appears exactly once). We performed $ q $ operations. During the $ i $ -th operation, we did the following: - choose any array we have with at least $ 2 $ elements; - split it into two non-empty arrays (prefix and suffix); - write two integers $ l_i $ and $ r_i $ , where $ l_i $ is the maximum element in the left part which we get after the split, and $ r_i $ is the maximum element in the right part; - remove the array we've chosen from the pool of arrays we can use, and add the two resulting parts into the pool. For example, suppose the initial array was $ [6, 3, 4, 1, 2, 5] $ , and we performed the following operations: 1. choose the array $ [6, 3, 4, 1, 2, 5] $ and split it into $ [6, 3] $ and $ [4, 1, 2, 5] $ . Then we write $ l_1 = 6 $ and $ r_1 = 5 $ , and the arrays we have are $ [6, 3] $ and $ [4, 1, 2, 5] $ ; 2. choose the array $ [4, 1, 2, 5] $ and split it into $ [4, 1, 2] $ and $ [5] $ . Then we write $ l_2 = 4 $ and $ r_2 = 5 $ , and the arrays we have are $ [6, 3] $ , $ [4, 1, 2] $ and $ [5] $ ; 3. choose the array $ [4, 1, 2] $ and split it into $ [4] $ and $ [1, 2] $ . Then we write $ l_3 = 4 $ and $ r_3 = 2 $ , and the arrays we have are $ [6, 3] $ , $ [4] $ , $ [1, 2] $ and $ [5] $ . You are given two integers $ n $ and $ q $ , and two sequences $ [l_1, l_2, \dots, l_q] $ and $ [r_1, r_2, \dots, r_q] $ . A permutation of size $ n $ is called valid if we can perform $ q $ operations and produce the given sequences $ [l_1, l_2, \dots, l_q] $ and $ [r_1, r_2, \dots, r_q] $ . Calculate the number of valid permutations.

Input Format

The first line contains two integers $ n $ and $ q $ ( $ 1 \le q < n \le 3 \cdot 10^5 $ ). The second line contains $ q $ integers $ l_1, l_2, \dots, l_q $ ( $ 1 \le l_i \le n $ ). The third line contains $ q $ integers $ r_1, r_2, \dots, r_q $ ( $ 1 \le r_i \le n $ ). Additional constraint on the input: there exists at least one permutation which can produce the given sequences $ [l_1, l_2, \dots, l_q] $ and $ [r_1, r_2, \dots, r_q] $ .

Output Format

Print one integer — the number of valid permutations, taken modulo $ 998244353 $ .