write a go solution for Description: We call an array a of length n fancy if for each 1<i<=n it holds that a_i=a_i-1+1. Let's call f(p) applied to a permutation^dagger of length n as the minimum number of subarrays it can be partitioned such that each one of them is fancy. For example f([1,2,3])=1, while f([3,1,2])=2 and f([3,2,1])=3. Given n and a permutation p of length n, we define a permutation p' of length n to be k-special if and only if: - p' is lexicographically smaller^ddagger than p, and - f(p')=k. Your task is to count for each 1<=k<=n the number of k-special permutations modulo m. ^dagger A permutation is an array consisting of n distinct integers from 1 to n in arbitrary order. For example, [2,3,1,5,4] is a permutation, but [1,2,2] is not a permutation (2 appears twice in the array) and [1,3,4] is also not a permutation (n=3 but there is 4 in the array). ^ddagger A permutation a of length n is lexicographically smaller than a permutation b of length n if and only if the following holds: in the first position where a and b differ, the permutation a has a smaller element than the corresponding element in b. Input Format: The first line contains two integers n and m (1<=n<=2000, 10<=m<=10^9) — the length of the permutation and the required modulo. The second line contains n distinct integers p_1,p_2,ldots,p_n (1<=p_i<=n) — the permutation p. Output Format: Print n integers, where the k-th integer is the number of k-special permutations modulo m. Note: In the first example, the permutations that are lexicographically smaller than [1,3,4,2] are: - [1,2,3,4], f([1,2,3,4])=1; - [1,2,4,3], f([1,2,4,3])=3; - [1,3,2,4], f([1,3,2,4])=4. Thus our answer is [1,0,1,1]. In the second example, the permutations that are lexicographically smaller than [3,2,1] are: - [1,2,3], f([1,2,3])=1; - [1,3,2], f([1,3,2])=3; - [2,1,3], f([2,1,3])=3; - [2,3,1], f([2,3,1])=2; - [3,1,2], f([3,1,2])=2. Thus our answer is [1,2,2].. Output only the code with no comments, explanation, or additional text.