"use strict"
const create = () => {
    const input = require("fs").readFileSync("/dev/stdin", "utf8").trim().split("\n");
    const res = {
        "list": input, "index": 0, "max": input.length,
        "hasNext": function() {return this.index < this.max},
        "next": function() { if (!this.hasNext()) {throw "ArrayIndexOutOfBoundsException";}else{return this.list[this.index++];}}
    };
    return res;
}
const o = create();
const next = () => o.next()
const nextInt = () => parseInt(o.next())
const nextStrArray = () => o.next().split(" ")
const nextIntArray = () => o.next().split(" ").map(el => parseInt(el))
const nextCharArray = () => o.next().split("")
const hasNext = () => o.hasNext()
const myout = (...x) => console.log(...x)
const Main = () => {
    let arr = nextIntArray()
    const N= arr[0]
    const X = arr[1]
    const Y = arr[2]
    let len = new Array(N-1).fill(0)
    for(let i = 1; i<=N-1;i++){
        for(let j = i+1; j<=N; j++){
            let diff = j - i
            let tmp1 = Math.abs(X-i) + 1+ Math.abs(Y-j)
            let tmp2 = Math.abs(X-j) + 1 + Math.abs(Y-i)
            let l = Math.min(diff, tmp1, tmp2)
            len[l-1]++
        }
    }
    for(let el of len){
        myout(el)
    }
}
Main()
