CF2119D Token Removing

Description

[r-906 & Hatsune Miku - All I Can See Is You](https://www.youtube.com/watch?v=xv7hJ32xK94) Define a sequence of integers $ a $ valid if and only if $ \forall 1 \le i \le n, 0 \le a_i \le i $ . Define the weight $ f(a) $ of a valid sequence $ a $ of length $ n $ : - Initially, a token is placed at each integer point in the closed segment $ [1, n] $ on the number axis. - Perform $ n $ operations in sequence. During the $ i $ -th operation, if $ a_i \ne 0 $ , remove a token in the closed segment $ [a_i, i] $ that has not been removed; otherwise, do nothing. - $ f(a) $ is the number of ways to remove tokens. Two ways are considered different if there exists a $ t $ such that the positions of the tokens removed by the two ways are different at the $ t $ -th operation. For example, $ f([0, 2, 1]) = 2 $ , because we can remove tokens on $ 2, 1 $ or $ 2, 3 $ in sequence. JT gives you two integers $ n, m $ and asks you to find the sum of the weights over all $ (n + 1)! $ valid sequences of length $ n $ . Since the answer may be too large, print it modulo $ m $ .

Input Format

Each test contains multiple test cases. The first line contains the number of test cases $ t $ ( $ 1 \le t \le 1000 $ ). The description of the test cases follows. The only line of each test case contains two integers $ n $ and $ m $ ( $ 1 \le n \le 5000, 10^8 \le m \le 1.01 \cdot 10^9 $ ) — the length of valid sequences, and the modulus. It is guaranteed that the sum of $ n^2 $ over all test cases does not exceed $ 2.5 \cdot 10^7 $ .

Output Format

For each test case, output an integer — the sum of the weights over all $ (n + 1)! $ valid sequences of length $ n $ , modulo $ m $ .

Explanation/Hint

In the first test case, valid sequences are $ [0] $ and $ [1] $ , and the answer is $ f([0]) + f([1]) = 1 + 1 = 2 $ . In the second test case, valid sequences are $ [0, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2] $ . The weight of $ [0, 1] $ is $ 2 $ , and the others are $ 1 $ , so the answer is $ 5 \cdot 1 + 1 \cdot 2 = 7 $ .