open System
open System.Collections.Generic

let R() = Console.ReadLine().Split() |> Array.map int

let f (n: int) (x: int) (y: int): int list =
    
    let g = Array2D.zeroCreate n n 
    for i in 0..n-1 do 
        for j in 0..n-1 do 
            g.[i, j] <- n
    for i in 0..n-1 do 
        g.[i,i] <- 0
    for i in 0..n-2 do 
        g.[i,i+1] <- 1
        g.[i+1,i] <- 1 
    g.[x-1, y-1] <- 1
    g.[y-1, x-1] <- 1
    for k in 0..n-1 do 
        for i in 0..n-1 do 
            for j in 0..n-1 do 
                g.[i, j] <- min g.[i, j] (g.[i, k] + g.[k, j])

    let d = new Dictionary<int,int>()
    g
    |> Array2D.iter (fun x -> 
        if not <| d.ContainsKey x then 
            d.[x] <- 1 
        else 
            d.[x] <- d.[x] + 1) 
    |> ignore
    [ for x in 1..n-1 -> 
        if not <| d.ContainsKey x || d.[x] = n
        then 0 
        else d.[x] / 2]
    
let N, X, Y = let t = R() in t.[0], t.[1], t.[2]

f N X Y 
|> List.iter (printfn "%i")