fun main(args: Array<String>) {
    val (n, k) = readLine()!!.split(' ').map { it.toInt() }

    // n (n - 1) / 2 - (n - 1)
    val m = (n - 1) * (n - 2) / 2

    if (k > m) {
        println(-1)
        return
    }

    val ans = mutableListOf<Pair<Int, Int>>()

    // star
    for (i in (2 .. n)) {
        ans.add(Pair(1, i))
    }

    var v1 = 2
    var v2 = 3

    repeat(m - k) {
        ans.add(Pair(v1, v2))
        if (v2 < n) {
            v2++
        } else {
            v1++
            v2 = v1 + 1
        }
    }

    println(ans.size)
    ans.forEach { println("${it.first} ${it.second}") }
}