from collections import deque

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

cnt = [0]*n

for i in range(n):

    d = [float('inf')]*n

    que = deque([(i, 0)])

    while que:

        idx, c = que.popleft()

        if d[idx]!=float('inf'):

            d[idx] = min(d[idx], c)

            continue

        else:

            d[idx] = min(d[idx], c)

            if idx!=0:

                que.append((idx-1, c+1))

            if idx!=n-1:

                que.append((idx+1, c+1))

            if idx==x-1:

                que.append((y-1, c+1))

            if idx==y-1:

                que.append((x-1, c+1))

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

        cnt[d[j]] += 1

for c in cnt[1:]:

    print(c)



from collections import deque

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

G = [[] for _ in range(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)



cost = [0]*(n+1)

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

    visited = [-1]*(n+1)

    que = deque([(i, 0)])

    while que:

        idx, cst = que.popleft()

        if visited[idx]!=-1:

            continue

        visited[idx] = cst

        for to in G[idx]:

            que.append((to, cst+1))

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

        cost[visited[j]] += 1

for c in cost[1:-1]:

    print(c)
from collections import deque

n, x, y = list(map(int, input().split()))
cnt = [0] * n
for i in range(n):
    d = [float("inf")] * n
    que = deque([(i, 0)])
    while que:
        idx, c = que.popleft()
        if d[idx] != float("inf"):
            d[idx] = min(d[idx], c)
            continue
        else:
            d[idx] = min(d[idx], c)
            if idx != 0:
                que.append((idx - 1, c + 1))
            if idx != n - 1:
                que.append((idx + 1, c + 1))
            if idx == x - 1:
                que.append((y - 1, c + 1))
            if idx == y - 1:
                que.append((x - 1, c + 1))
    for j in range(i + 1, n):
        cnt[d[j]] += 1
for c in cnt[1:]:
    print(c)

from collections import deque

n, x, y = list(map(int, input().split()))
G = [[] for _ in range(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)
cost = [0] * (n + 1)
for i in range(1, n + 1):
    visited = [-1] * (n + 1)
    que = deque([(i, 0)])
    while que:
        idx, cst = que.popleft()
        if visited[idx] != -1:
            continue
        visited[idx] = cst
        for to in G[idx]:
            que.append((to, cst + 1))
    for j in range(i, n + 1):
        cost[visited[j]] += 1
for c in cost[1:-1]:
    print(c)

-cnt = [0] * n -for i in range(n): -    d = [float("inf")] * n +G = [[] for _ in range(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) +cost = [0] * (n + 1) +for i in range(1, n + 1): +    visited = [-1] * (n + 1) -        idx, c = que.popleft() -        if d[idx] != float("inf"): -            d[idx] = min(d[idx], c) +        idx, cst = que.popleft() +        if visited[idx] != -1: -        else: -            d[idx] = min(d[idx], c) -            if idx != 0: -                que.append((idx - 1, c + 1)) -            if idx != n - 1: -                que.append((idx + 1, c + 1)) -            if idx == x - 1: -                que.append((y - 1, c + 1)) -            if idx == y - 1: -                que.append((x - 1, c + 1)) -    for j in range(i + 1, n): -        cnt[d[j]] += 1 -for c in cnt[1:]: +        visited[idx] = cst +        for to in G[idx]: +            que.append((to, cst + 1)) +    for j in range(i, n + 1): +        cost[visited[j]] += 1 +for c in cost[1:-1]: