const val MOD = 1000000007 fun main() { val (n, target, k) = readLine()!!.trim().split(' ').map(String::toInt) val initial = n * (n - 1) / 2 * k if (initial !in 0 .. target) { println(0) return } val memo = IntArray(target - initial + 1).also{it[0] = 1} for (i in 0 until n) { val rest = n - i val sum = IntArray(rest) for (j in memo.indices) { sum[j % rest] = (sum[j % rest] + memo[j]) % MOD } for (j in memo.lastIndex downTo rest) { val s = sum[j % rest] sum[j % rest] = (s - memo[j] + MOD) % MOD memo[j] = s } } println(memo.last()) }