← Home
 ```go
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	in := bufio.NewReader(os.Stdin)
	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()

	var t int
	fmt.Fscan(in, &t)
	for ; t > 0; t-- {
		var n, k int
		fmt.Fscan(in, &n, &k)
		a := make([]int, n)
		maxA := 0
		for i := 0; i < n; i++ {
			fmt.Fscan(in, &a[i])
			if a[i] > maxA {
				maxA = a[i]
			}
		}

		limit := maxA + n + 10
		freq := make([]int, limit)
		for _, v := range a {
			freq[v]++
		}

		ans := 0
		for x := 1; x < limit; x++ {
			if freq[x] > k {
				ans++
				surplus := freq[x] - 1
				if x+1 < limit {
					freq[x+1] += surplus
				}
			}
		}
		fmt.Fprintln(out, ans)
	}
}
```