program line_plus_plus
  implicit none
  integer :: n, x, y, i, j
  integer :: d(2000,2000) = 1e8, c(0:2000) = 0
  read(*,*) n, x, y
  do i = 1, n
    call dfs(i,-1,0,i)
  end do
  do i = 1, n
    do j = 1, n
      c(d(i,j)) = c(d(i,j))+1
    end do
  end do
  do i = 1, n-1
    write(*,'(i0)') c(i)/2
  end do
contains
  recursive subroutine dfs(v,p,s,k)
    integer, intent(in) :: v, p, s, k
    if (s >= d(k,v)) return
    d(k,v) = s
    if (v > 1 .and. p /= v-1) call dfs(v-1,v,s+1,k)
    if (v < n .and. p /= v+1) call dfs(v+1,v,s+1,k)
    if (v == x .and. p /= y) call dfs(y,x,s+1,k)
    if (v == y .and. p /= x) call dfs(x,y,s+1,k)
  end
end program line_plus_plus