import java.util.* fun main() { val builder = StringBuilder() readInputLine() val aList = readInputLine().split(" ").map { it.toInt() }.sorted() val bArr = readInputLine().split(" ").map { it.toInt() }.toIntArray() val bListSorted = mutableListOf() var ans = 0L for ((i, a) in aList.withIndex()) { bListSorted.add(lowerBound(bListSorted, bArr[i]), bArr[i]) ans += lowerBound(bListSorted, a).toLong() } builder.appendln(ans) print(builder.toString()) } fun readInputLine(): String { return readLine()!! } fun > lowerBound(list: List, value: T): Int { return Collections.binarySearch(list, value, { x, y -> if (x >= y) 1 else -1}).inv() }