AT_abc396_f [ABC396F] Rotated Inversions
Description
整数 $ N,M $ と長さ $ N $ の非負整数列 $ A=(A_1,A_2,\ldots,A_N) $ が与えられます。
$ k=0,1,\ldots,M-1 $ に対して以下の問題を解いてください。
> 整数列 $ B=(B_1,B_2,\ldots,B_N) $ を $ B_i $ が $ A_i+k $ を $ M $ で割ったあまりとなるように定義したときの、 $ B $ の転倒数を求めてください。
転倒数とは 数列 $ (A_1,A_2,\dots,A_N) $ の転倒数とは、 $ 1 \le i < j \le N $ かつ $ A_i > A_j $ を満たす整数組 $ (i,j) $ の個数を指します。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ M $ $ A_1 $ $ A_2 $ $ \ldots $ $ A_N $
Output Format
$ M $ 行出力せよ。
$ i $ 行目 $ (1\le i\le M) $ には、 $ k=i-1 $ の場合の答えを出力せよ。
Explanation/Hint
### Sample Explanation 1
- $ k=0 $ のとき: $ B=(2 , 1 ,0) $ となります。このときの転倒数は $ 3 $ です。
- $ k=1 $ のとき: $ B=(0,2,1) $ となります。このときの転倒数は $ 1 $ です。
- $ k=2 $ のとき: $ B=(1,0,2) $ となります。このときの転倒数は $ 1 $ です。
### Constraints
- $ 1\le N,M\le 2\times 10^5 $
- $ 0\le A_i< M $
- 入力される値は全て整数である