import java.math.BigDecimal

fun main(args: Array<String>) {
    jsc2019qual_b()
}

fun jsc2019qual_b() {
    val (n, k) = readLine()!!.split(" ").map { it.toLong() }
    val aList = readLine()!!.split(" ").map { it.toLong() }
    val mod = BigDecimal((Math.pow(10.toDouble(), 9.toDouble()) + 7).toLong())

    val innerInversion = aList.mapIndexed { index, a ->
        BigDecimal(aList.subList(0, index).count { it > a })
    }

    val sum = BigDecimal(0)
    innerInversion.forEach { sum + it }

    var innerInversionSum = BigDecimal(0)
    innerInversion.forEach { innerInversionSum += it }
    innerInversionSum *= BigDecimal(k)
    innerInversionSum %= mod

    val outerInversion = aList.map { a ->
        BigDecimal(aList.count { it > a })
    }

    var outerInversionSum = BigDecimal(0)
    outerInversion.forEach { outerInversionSum += it }
    outerInversionSum *= BigDecimal((1 until k).sum())
    outerInversionSum %= mod

    println((innerInversionSum + outerInversionSum) % mod)
}
