# coding: utf-8

import sys



sr = lambda: sys.stdin.readline().rstrip()

ir = lambda: int(sr())

lr = lambda: list(map(int, sr().split()))



N, X, Y = lr()

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

for i in range(1, N):

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

        dis[i][j] = j - i

        dis[j][i] = j - i



dis[X][Y] = 1

dis[Y][X] = 1

for i in range(1, N):

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

        dis[i][j] = min(dis[i][j], dis[i][X] + 1 + dis[Y][j])



answer = [0] * (N)

for i in range(1, N):

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

        d = dis[i][j]

        answer[d] += 1



print(('\n'.join(map(str, answer[1:]))))

# coding: utf-8

import sys

import numpy as np



sr = lambda: sys.stdin.buffer.readline().rstrip()

ir = lambda: int(sr())

lr = lambda: list(map(int, sr().split()))



N, X, Y = lr()

dist = []

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

    z = np.arange(i+1, N+1)

    d1 = z - i

    d2 = np.abs(i - X) + np.abs(z - Y) + 1

    d = np.minimum(d1, d2)

    dist.append(d)



dist = np.concatenate(dist)

cnt = np.bincount(dist, minlength=N)

print(('\n'.join(cnt[1:].astype(str))))

# coding: utf-8
import sys

sr = lambda: sys.stdin.readline().rstrip()
ir = lambda: int(sr())
lr = lambda: list(map(int, sr().split()))
N, X, Y = lr()
dis = [[0] * (N + 1) for _ in range(N + 1)]
for i in range(1, N):
    for j in range(i + 1, N + 1):
        dis[i][j] = j - i
        dis[j][i] = j - i
dis[X][Y] = 1
dis[Y][X] = 1
for i in range(1, N):
    for j in range(i + 1, N + 1):
        dis[i][j] = min(dis[i][j], dis[i][X] + 1 + dis[Y][j])
answer = [0] * (N)
for i in range(1, N):
    for j in range(i + 1, N + 1):
        d = dis[i][j]
        answer[d] += 1
print(("\n".join(map(str, answer[1:]))))

# coding: utf-8
import sys
import numpy as np

sr = lambda: sys.stdin.buffer.readline().rstrip()
ir = lambda: int(sr())
lr = lambda: list(map(int, sr().split()))
N, X, Y = lr()
dist = []
for i in range(1, N + 1):
    z = np.arange(i + 1, N + 1)
    d1 = z - i
    d2 = np.abs(i - X) + np.abs(z - Y) + 1
    d = np.minimum(d1, d2)
    dist.append(d)
dist = np.concatenate(dist)
cnt = np.bincount(dist, minlength=N)
print(("\n".join(cnt[1:].astype(str))))

+import numpy as np -sr = lambda: sys.stdin.readline().rstrip() +sr = lambda: sys.stdin.buffer.readline().rstrip() -dis = [[0] * (N + 1) for _ in range(N + 1)] -for i in range(1, N): -    for j in range(i + 1, N + 1): -        dis[i][j] = j - i -        dis[j][i] = j - i -dis[X][Y] = 1 -dis[Y][X] = 1 -for i in range(1, N): -    for j in range(i + 1, N + 1): -        dis[i][j] = min(dis[i][j], dis[i][X] + 1 + dis[Y][j]) -answer = [0] * (N) -for i in range(1, N): -    for j in range(i + 1, N + 1): -        d = dis[i][j] -        answer[d] += 1 -print(("\n".join(map(str, answer[1:])))) +dist = [] +for i in range(1, N + 1): +    z = np.arange(i + 1, N + 1) +    d1 = z - i +    d2 = np.abs(i - X) + np.abs(z - Y) + 1 +    d = np.minimum(d1, d2) +    dist.append(d) +dist = np.concatenate(dist) +cnt = np.bincount(dist, minlength=N) +print(("\n".join(cnt[1:].astype(str))))