from collections import deque

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

x,y = x-1 ,y-1

g = [[float('inf')]*n for _ in range(n)]

for i in range(n):

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

    while que:

        node, cost = que.popleft()

        if g[i][node]!=float('inf'):

            continue

        else:

            g[i][node] = cost

            if node>0:

                que.append((node-1, cost+1))

            if node<n-1:

                que.append((node+1, cost+1))

            if node==x:

                que.append((y, cost+1))

            if node==y:

                que.append((x, cost+1))

cnt = [0]*n

for i in range(n):

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

        cnt[g[i][j]] += 1

for c in cnt[1:]:

    print(c)
from collections import deque

def main():

    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)

    

if __name__ == '__main__':

    main()

from collections import deque

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

from collections import deque


def main():
    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)


if __name__ == "__main__":
    main()

-n, x, y = list(map(int, input().split())) -x, y = x - 1, y - 1 -g = [[float("inf")] * n for _ in range(n)] -for i in range(n): -    que = deque([(i, 0)]) -    while que: -        node, cost = que.popleft() -        if g[i][node] != float("inf"): -            continue -        else: -            g[i][node] = cost -            if node > 0: -                que.append((node - 1, cost + 1)) -            if node < n - 1: -                que.append((node + 1, cost + 1)) -            if node == x: -                que.append((y, cost + 1)) -            if node == y: -                que.append((x, cost + 1)) -cnt = [0] * n -for i in range(n): -    for j in range(i + 1, n): -        cnt[g[i][j]] += 1 -for c in cnt[1:]: -    print(c) + +def main(): +    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) + + +if __name__ == "__main__": +    main()