[ARC169D] Add to Make a Permutation

题意翻译

#### 问题陈述 给定一个长度为 $N$ 的整数序列 $A=(A_1,A_2,\cdots,A_N)$。$A$ 中的每个元素都是介于 $0$ 和 $N-1$ 之间的整数。 你可以执行以下操作任意次: - 从 $A$ 中选择 $M$ 个元素。然后,将每个所选元素的值增加 $1$。如果某些元素的值为 $N$,则将这些值改为 $0$。 你的目标是使 $A$ 成为 $(0,1,\cdots,N-1)$ 的排列。判断这个目标是否可以实现。如果可以,请找出所需的最少运算次数。

题目描述

[problemUrl]: https://atcoder.jp/contests/arc169/tasks/arc169_d 長さ $ N $ の整数列 $ A=(A_1,A_2,\cdots,A_N) $ が与えられます. $ A $ の各要素は $ 0 $ 以上 $ N-1 $ 以下の整数です. あなたは以下の操作を $ 0 $ 回以上行うことができます. - $ A $ の中からちょうど $ M $ 個の要素を選ぶ. そして,選んだ要素の値をそれぞれ $ 1 $ 増加させる. 増加させたあとに値が $ N $ になっている要素があれば,その値を $ 0 $ に変更する. あなたの目標は $ A $ を $ (0,1,\cdots,N-1) $ の順列にすることです. 目標が達成可能か判定し,可能ならば必要な最小の操作回数を求めてください.

输入输出格式

输入格式


入力は以下の形式で標準入力から与えられる. > $ N $ $ M $ $ A_1 $ $ A_2 $ $ \cdots $ $ A_N $

输出格式


目標が達成不可能な場合,$ -1 $ を出力せよ. 可能な場合,必要な最小の操作回数を出力せよ.

输入输出样例

输入样例 #1

3 2
0 1 1

输出样例 #1

2

输入样例 #2

5 2
0 4 2 3 1

输出样例 #2

0

输入样例 #3

4 2
0 0 1 2

输出样例 #3

-1

输入样例 #4

20 15
5 14 18 0 8 5 0 10 6 5 11 2 10 10 17 9 8 14 4 4

输出样例 #4

10

说明

### 制約 - $ 2\ \leq\ N\ \leq\ 250000 $ - $ 1\ \leq\ M\ \leq\ N-1 $ - $ 0\ \leq\ A_i\ \leq\ N-1 $ - 入力される値はすべて整数. ### Sample Explanation 1 以下のように操作すると $ 2 $ 回の操作で目標を達成できます. - 初期状態: $ A=(0,1,1) $ - $ 1 $ 回目の操作: $ A_1,A_2 $ を選んで操作を行い,$ A=(1,2,1) $ になる. - $ 2 $ 回目の操作: $ A_2,A_3 $ を選んで操作を行い,$ A=(1,0,2) $ になる. $ 2 $ 回未満の操作で目標を達成することはできないため,答えは $ 2 $ になります.