import java.util.*

fun main(args: Array<String>) = abc160d()

fun abc160d() {
    val (n, x, y) = readLine()!!.split(' ').map { it.toInt() }

    val graph = Array(n) {
        Vertex(it, setOf(it - 1, it + 1).filter { it in 0 until n }.toMutableSet())
    }

    graph[x - 1].neighbor.add(y - 1)
    graph[y - 1].neighbor.add(x - 1)
    
    val count = IntArray(n)

    for (fromIndex in 0 until n) {
        val queue: Queue<Pair<Int, Int>> = ArrayDeque(listOf(fromIndex to 0))
        val visited = mutableSetOf(fromIndex)

        while (queue.isNotEmpty()) {
            val (index, dist) = queue.poll()

            count[dist]++
            graph[index].neighbor.filter { visited.add(it) }
                .map { it to dist + 1 }.let { queue.addAll(it) }
        }
    }

    val answer = count.drop(1).map { it / 2 }.joinToString(System.lineSeparator())

    println(answer)
}

private data class Vertex(val index: Int, val neighbor: MutableSet<Int> = mutableSetOf())
