# coding: utf-8

from collections import deque

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

X -= 1

Y -= 1

D = [[0 for _ in range(N)] for _ in range(N)]

for i in range(N):

    for j in range(N):

        if i == j:

            continue

        D[i][j] = abs(j-i)

        D[j][i] = abs(j-i)

D[X][Y] = 1

D[Y][X] = 1

# print(*D, sep="\n")

queue = deque([[X, Y]])

visited = [[False for _ in range(N)] for _ in range(N)]

visited[X][Y] = True 

while queue:

    x,y = queue.popleft()

    for i, j in zip([1, 0, -1, 0], [0, 1, 0, -1]):

        nx, ny = x+i, y+j

        if nx < 0 or nx >= N or ny < 0 or ny >= N:

            continue

        if visited[nx][ny]:

            continue

        else:

            visited[nx][ny] = True

            D[nx][ny] = min(D[nx][ny], D[x][y]+1)

            queue.append([nx, ny])

# print(*D, sep="\n")

ans = [0 for _ in range(N)]

cnt = 0

for i in range(N):

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

        # cnt += 1

        v = D[i][j]

        # print(i,j, v)

        ans[v-1] += 1

print(*ans[:-1], sep="\n")

# coding: utf-8

from collections import deque

def main():

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

    X -= 1

    Y -= 1

    D = [[0 for _ in range(N)] for _ in range(N)]

    for i in range(N):

        for j in range(N):

            if i == j:

                continue

            D[i][j] = abs(j-i)

            D[j][i] = abs(j-i)

    D[X][Y] = 1

    D[Y][X] = 1

    queue = deque([[X, Y]])

    visited = [[False for _ in range(N)] for _ in range(N)]

    visited[X][Y] = True 

    while queue:

        x,y = queue.popleft()

        for i, j in zip([1, 0, -1, 0], [0, 1, 0, -1]):

            nx, ny = x+i, y+j

            if nx < 0 or nx >= N or ny < 0 or ny >= N:

                continue

            if visited[nx][ny]:

                continue

            else:

                visited[nx][ny] = True

                D[nx][ny] = min(D[nx][ny], D[x][y]+1)

                queue.append([nx, ny])

    ans = [0 for _ in range(N)]

    cnt = 0

    for i in range(N):

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

            v = D[i][j]

            ans[v-1] += 1

    print(*ans[:-1], sep="\n")

main()

# coding: utf-8
from collections import deque

N, X, Y = map(int, input().split())
X -= 1
Y -= 1
D = [[0 for _ in range(N)] for _ in range(N)]
for i in range(N):
    for j in range(N):
        if i == j:
            continue
        D[i][j] = abs(j - i)
        D[j][i] = abs(j - i)
D[X][Y] = 1
D[Y][X] = 1
# print(*D, sep="\n")
queue = deque([[X, Y]])
visited = [[False for _ in range(N)] for _ in range(N)]
visited[X][Y] = True
while queue:
    x, y = queue.popleft()
    for i, j in zip([1, 0, -1, 0], [0, 1, 0, -1]):
        nx, ny = x + i, y + j
        if nx < 0 or nx >= N or ny < 0 or ny >= N:
            continue
        if visited[nx][ny]:
            continue
        else:
            visited[nx][ny] = True
            D[nx][ny] = min(D[nx][ny], D[x][y] + 1)
            queue.append([nx, ny])
# print(*D, sep="\n")
ans = [0 for _ in range(N)]
cnt = 0
for i in range(N):
    for j in range(i + 1, N):
        # cnt += 1
        v = D[i][j]
        # print(i,j, v)
        ans[v - 1] += 1
print(*ans[:-1], sep="\n")

# coding: utf-8
from collections import deque


def main():
    N, X, Y = map(int, input().split())
    X -= 1
    Y -= 1
    D = [[0 for _ in range(N)] for _ in range(N)]
    for i in range(N):
        for j in range(N):
            if i == j:
                continue
            D[i][j] = abs(j - i)
            D[j][i] = abs(j - i)
    D[X][Y] = 1
    D[Y][X] = 1
    queue = deque([[X, Y]])
    visited = [[False for _ in range(N)] for _ in range(N)]
    visited[X][Y] = True
    while queue:
        x, y = queue.popleft()
        for i, j in zip([1, 0, -1, 0], [0, 1, 0, -1]):
            nx, ny = x + i, y + j
            if nx < 0 or nx >= N or ny < 0 or ny >= N:
                continue
            if visited[nx][ny]:
                continue
            else:
                visited[nx][ny] = True
                D[nx][ny] = min(D[nx][ny], D[x][y] + 1)
                queue.append([nx, ny])
    ans = [0 for _ in range(N)]
    cnt = 0
    for i in range(N):
        for j in range(i + 1, N):
            v = D[i][j]
            ans[v - 1] += 1
    print(*ans[:-1], sep="\n")


main()

-N, X, Y = map(int, input().split()) -X -= 1 -Y -= 1 -D = [[0 for _ in range(N)] for _ in range(N)] -for i in range(N): -    for j in range(N): -        if i == j: -            continue -        D[i][j] = abs(j - i) -        D[j][i] = abs(j - i) -D[X][Y] = 1 -D[Y][X] = 1 -# print(*D, sep="\n") -queue = deque([[X, Y]]) -visited = [[False for _ in range(N)] for _ in range(N)] -visited[X][Y] = True -while queue: -    x, y = queue.popleft() -    for i, j in zip([1, 0, -1, 0], [0, 1, 0, -1]): -        nx, ny = x + i, y + j -        if nx < 0 or nx >= N or ny < 0 or ny >= N: -            continue -        if visited[nx][ny]: -            continue -        else: -            visited[nx][ny] = True -            D[nx][ny] = min(D[nx][ny], D[x][y] + 1) -            queue.append([nx, ny]) -# print(*D, sep="\n") -ans = [0 for _ in range(N)] -cnt = 0 -for i in range(N): -    for j in range(i + 1, N): -        # cnt += 1 -        v = D[i][j] -        # print(i,j, v) -        ans[v - 1] += 1 -print(*ans[:-1], sep="\n") + +def main(): +    N, X, Y = map(int, input().split()) +    X -= 1 +    Y -= 1 +    D = [[0 for _ in range(N)] for _ in range(N)] +    for i in range(N): +        for j in range(N): +            if i == j: +                continue +            D[i][j] = abs(j - i) +            D[j][i] = abs(j - i) +    D[X][Y] = 1 +    D[Y][X] = 1 +    queue = deque([[X, Y]]) +    visited = [[False for _ in range(N)] for _ in range(N)] +    visited[X][Y] = True +    while queue: +        x, y = queue.popleft() +        for i, j in zip([1, 0, -1, 0], [0, 1, 0, -1]): +            nx, ny = x + i, y + j +            if nx < 0 or nx >= N or ny < 0 or ny >= N: +                continue +            if visited[nx][ny]: +                continue +            else: +                visited[nx][ny] = True +                D[nx][ny] = min(D[nx][ny], D[x][y] + 1) +                queue.append([nx, ny]) +    ans = [0 for _ in range(N)] +    cnt = 0 +    for i in range(N): +        for j in range(i + 1, N): +            v = D[i][j] +            ans[v - 1] += 1 +    print(*ans[:-1], sep="\n") + + +main()