import java.util.*

fun main(args: Array<String>) {
    val sc = Scanner(System.`in`)
    val n = sc.nextInt()
    val x = sc.nextInt()
    val y = sc.nextInt()
    println(problem160d(n, x, y))
}

fun problem160d(n: Int, x: Int, y: Int): String {
    val dist = Array(n) { IntArray(n) { -1 } }
    for (s in 0 until n) {
        val que = ArrayDeque<Int>()
        que.offer(s)
        dist[s][s] = 0
        while (!que.isEmpty()) {
            val v = que.poll()
            val nvs = mutableListOf<Int>()
            if (v > 0) nvs.add(v - 1)
            if (v < n - 1) nvs.add(v + 1)
            if (v == x - 1) nvs.add(y - 1)
            if (v == y - 1) nvs.add(x - 1)
            for (nv in nvs) {
                if (dist[s][nv] == -1) {
                    dist[s][nv] = dist[s][v] + 1
                    que.offer(nv)
                }
            }
        }
    }
    val res = IntArray(n) { 0 }
    for (i in 0 until n) {
        for (j in i + 1 until n) {
            res[dist[i][j]]++
        }
    }
    return res.drop(1).joinToString("\n")
}