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 shortestList = [((aaaa (i,j) vertexX vertexY) - 1,1) | i<-[1 .. n-1], j<-[i+1..n] ]

    let aaaList = 
                sumShortest shortestList n
    
    --mapM putStrLn (map  (\x->show (snd x))  aaaList)
    VU.mapM_ print (trace (show aaaList) 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 n =
    VU.accum (+) (VU.replicate (n-1) 0) shortestList