module Main where

import           Debug.Trace
import qualified Data.Vector.Unboxed as VU

main :: IO ()
main = do
    [n, vertexX, vertexY] <- map read . words <$> getLine

    let numList  = [1 .. n-1]
    let combList =[(i,j) | i<-numList, j<-[i+1..n] ]

    let shortestList =
            foldl (\acc x -> acc ++ [((aaaa x vertexX vertexY),1)]) [] combList
    let aaaList = 
                sumShortest shortestList numList

    --mapM putStrLn (map  (\x->show (snd x))  aaaList)
    VU.mapM_ print aaaList

aaaa :: (Int,Int) -> Int -> Int -> Int
aaaa x vertexX vertexY  =  min (abs (start-vertexX) + 1 + abs (end-vertexY)) (end - start)
  where
    start    = fst x :: Int
    end      = snd x :: Int
    smaller a b = if a < b then a else b

sumShortest :: [(Int,Int)] -> [Int]-> VU.Vector Int
sumShortest shortestList numList =
    VU.accum (+) (VU.replicate (length numList) 0) shortestList
inc ::[(Int,Int)]->Int->[(Int,Int)]
inc (x:xs) y= if (fst x)==y then (y,(snd x) + 1):xs else x: (inc xs y)