import heapq

INFTY = 10**4

N,X,Y = list(map(int,input().split()))

C = {k:0 for k in range(N)}

G = {i:[] for i in range(1,N+1)}

G[1].append(2)

G[N].append(N-1)

for i in range(2,N):

    G[i].append(i-1)

    G[i].append(i+1)

G[X].append(Y)

G[Y].append(X)

for i in range(1,N+1):

    heap = [(0,i)]

    dist = [INFTY for _ in range(N+1)]

    dist[i] = 0

    hist = [0 for _ in range(N+1)]

    while heap:

        d,x = heapq.heappop(heap)

        if dist[x]<d:continue

        hist[x]=1

        for y in G[x]:

            if hist[y]==0 and dist[y]>d+1:

                dist[y] = d+1

                heapq.heappush(heap,(dist[y],y))

    for j in range(1,N+1):

        C[dist[j]] += 1

for k in range(1,N):

    print((C[k]//2))
import heapq

INFTY = 10**4

N,X,Y = list(map(int,input().split()))

G = {i:[] for i in range(1,N+1)}

for i in range(1,N):

    G[i].append(i+1)

    G[i+1].append(i)

G[X].append(Y)

G[Y].append(X)

dist = [[INFTY for _ in range(N+1)] for _ in range(N+1)]

for i in range(N+1):

    dist[i][i] = 0

for i in range(1,N+1):

    hist = [0 for _ in range(N+1)]

    heap = [(0,i)]

    hist[i] = 1

    while heap:

        d,x = heapq.heappop(heap)

        if d>dist[i][x]:continue

        hist[x] = 1

        for y in G[x]:

            if hist[y]==0:

                if dist[i][y]>d+1:

                    dist[i][y] = d+1

                    heapq.heappush(heap,(d+1,y))

C = {k:0 for k in range(1,N)}

for i in range(1,N):

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

        C[dist[i][j]] += 1

for k in range(1,N):

    print((C[k]))
import heapq

INFTY = 10**4
N, X, Y = list(map(int, input().split()))
C = {k: 0 for k in range(N)}
G = {i: [] for i in range(1, N + 1)}
G[1].append(2)
G[N].append(N - 1)
for i in range(2, N):
    G[i].append(i - 1)
    G[i].append(i + 1)
G[X].append(Y)
G[Y].append(X)
for i in range(1, N + 1):
    heap = [(0, i)]
    dist = [INFTY for _ in range(N + 1)]
    dist[i] = 0
    hist = [0 for _ in range(N + 1)]
    while heap:
        d, x = heapq.heappop(heap)
        if dist[x] < d:
            continue
        hist[x] = 1
        for y in G[x]:
            if hist[y] == 0 and dist[y] > d + 1:
                dist[y] = d + 1
                heapq.heappush(heap, (dist[y], y))
    for j in range(1, N + 1):
        C[dist[j]] += 1
for k in range(1, N):
    print((C[k] // 2))

import heapq

INFTY = 10**4
N, X, Y = list(map(int, input().split()))
G = {i: [] for i in range(1, N + 1)}
for i in range(1, N):
    G[i].append(i + 1)
    G[i + 1].append(i)
G[X].append(Y)
G[Y].append(X)
dist = [[INFTY for _ in range(N + 1)] for _ in range(N + 1)]
for i in range(N + 1):
    dist[i][i] = 0
for i in range(1, N + 1):
    hist = [0 for _ in range(N + 1)]
    heap = [(0, i)]
    hist[i] = 1
    while heap:
        d, x = heapq.heappop(heap)
        if d > dist[i][x]:
            continue
        hist[x] = 1
        for y in G[x]:
            if hist[y] == 0:
                if dist[i][y] > d + 1:
                    dist[i][y] = d + 1
                    heapq.heappush(heap, (d + 1, y))
C = {k: 0 for k in range(1, N)}
for i in range(1, N):
    for j in range(i + 1, N + 1):
        C[dist[i][j]] += 1
for k in range(1, N):
    print((C[k]))

-C = {k: 0 for k in range(N)} -G[1].append(2) -G[N].append(N - 1) -for i in range(2, N): -    G[i].append(i - 1) +for i in range(1, N): +    G[i + 1].append(i) +dist = [[INFTY for _ in range(N + 1)] for _ in range(N + 1)] +for i in range(N + 1): +    dist[i][i] = 0 +    hist = [0 for _ in range(N + 1)] -    dist = [INFTY for _ in range(N + 1)] -    dist[i] = 0 -    hist = [0 for _ in range(N + 1)] +    hist[i] = 1 -        if dist[x] < d: +        if d > dist[i][x]: -            if hist[y] == 0 and dist[y] > d + 1: -                dist[y] = d + 1 -                heapq.heappush(heap, (dist[y], y)) -    for j in range(1, N + 1): -        C[dist[j]] += 1 +            if hist[y] == 0: +                if dist[i][y] > d + 1: +                    dist[i][y] = d + 1 +                    heapq.heappush(heap, (d + 1, y)) +C = {k: 0 for k in range(1, N)} +for i in range(1, N): +    for j in range(i + 1, N + 1): +        C[dist[i][j]] += 1 -    print((C[k] // 2)) +    print((C[k]))