from collections import deque, Counter



def BFS(st,c):



  dist=[-1 for i in range(n)]

  dist[st]=0



  que=deque()

  que.append(st)



  while que:

    x=que.popleft()

    for i in tree[x]:

      if dist[i]==-1:

        dist[i]=dist[x]+1

        que.append(i)



  c+=dist



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



tree=[[] for i in range(n)]

for i in range(n-1):

  tree[i].append(i+1)

  tree[i+1].append(i)



x-=1

y-=1

tree[x].append(y)

tree[y].append(x)



c=[]



for i in range(n):

  BFS(i,c)



count=Counter(c)



for i in range(1,n):

  print((count[i]//2))
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))
from collections import deque, Counter


def BFS(st, c):
    dist = [-1 for i in range(n)]
    dist[st] = 0
    que = deque()
    que.append(st)
    while que:
        x = que.popleft()
        for i in tree[x]:
            if dist[i] == -1:
                dist[i] = dist[x] + 1
                que.append(i)
    c += dist


n, x, y = list(map(int, input().split()))
tree = [[] for i in range(n)]
for i in range(n - 1):
    tree[i].append(i + 1)
    tree[i + 1].append(i)
x -= 1
y -= 1
tree[x].append(y)
tree[y].append(x)
c = []
for i in range(n):
    BFS(i, c)
count = Counter(c)
for i in range(1, n):
    print((count[i] // 2))

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))

-from collections import deque, Counter - - -def BFS(st, c): -    dist = [-1 for i in range(n)] -    dist[st] = 0 -    que = deque() -    que.append(st) -    while que: -        x = que.popleft() -        for i in tree[x]: -            if dist[i] == -1: -                dist[i] = dist[x] + 1 -                que.append(i) -    c += dist - +from scipy.sparse import csr_matrix +from scipy.sparse.csgraph import dijkstra +import numpy as np +from collections import Counter -tree = [[] for i in range(n)] +row, col, w = [], [], [] -    tree[i].append(i + 1) -    tree[i + 1].append(i) -x -= 1 -y -= 1 -tree[x].append(y) -tree[y].append(x) -c = [] -for i in range(n): -    BFS(i, c) -count = Counter(c) +    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) -    print((count[i] // 2)) +    print((c[i] // 2))