from scipy.sparse import csr_matrix

from scipy.sparse.csgraph import dijkstra

import numpy as np

from collections import Counter



n,x,y=list(map(int,input().split()))



row,col,w=[],[],[]

for i in range(n-1):

  row.append(i)

  col.append(i+1)

  w.append(1)



row.append(x-1)

col.append(y-1)

w.append(1)



g=csr_matrix((w, (row, col)), shape=(n, n))



d=dijkstra(g,directed=False)



l=list(np.ravel(d))



c=Counter(l)

for i in range(1,n):

  print((c[i]//2))
n,x,y=list(map(int,input().split()))



x-=1

y-=1



dist=[0 for i in range(n)]

for i in range(n-1):

  for j in range(i+1,n):

    dist[min(j-i,abs(x-i)+1+abs(j-y))]+=1



for i in dist[1:]:

  print(i)
from scipy.sparse import csr_matrix
from scipy.sparse.csgraph import dijkstra
import numpy as np
from collections import Counter

n, x, y = list(map(int, input().split()))
row, col, w = [], [], []
for i in range(n - 1):
    row.append(i)
    col.append(i + 1)
    w.append(1)
row.append(x - 1)
col.append(y - 1)
w.append(1)
g = csr_matrix((w, (row, col)), shape=(n, n))
d = dijkstra(g, directed=False)
l = list(np.ravel(d))
c = Counter(l)
for i in range(1, n):
    print((c[i] // 2))

n, x, y = list(map(int, input().split()))
x -= 1
y -= 1
dist = [0 for i in range(n)]
for i in range(n - 1):
    for j in range(i + 1, n):
        dist[min(j - i, abs(x - i) + 1 + abs(j - y))] += 1
for i in dist[1:]:
    print(i)

-from scipy.sparse import csr_matrix -from scipy.sparse.csgraph import dijkstra -import numpy as np -from collections import Counter - -row, col, w = [], [], [] +x -= 1 +y -= 1 +dist = [0 for i in range(n)] -    row.append(i) -    col.append(i + 1) -    w.append(1) -row.append(x - 1) -col.append(y - 1) -w.append(1) -g = csr_matrix((w, (row, col)), shape=(n, n)) -d = dijkstra(g, directed=False) -l = list(np.ravel(d)) -c = Counter(l) -for i in range(1, n): -    print((c[i] // 2)) +    for j in range(i + 1, n): +        dist[min(j - i, abs(x - i) + 1 + abs(j - y))] += 1 +for i in dist[1:]: +    print(i)