import sys

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

from collections import deque



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



edges = [[] for _ in range(N)]



for i in range(N-1):

    edges[i].append(i+1)

    edges[i+1].append(i)





edges[X-1].append(Y-1)

edges[Y-1].append(X-1)



ans = [0] * (N-1)



queue = deque([])



def bfs(start):

    queue.extend(edges[start])

    visited = [False] *  N

    visited[start] = True

    i = 0

    while queue:

        length = len(queue)

        for l in range(length):

            current = queue.popleft()

            if not visited[current]:

                ans[i] += 1

                if edges[current]:

                    queue.extend(edges[current])

                visited[current] = True    

        i += 1



for i in range(N):

    bfs(i)



for i in ans:

    print((i // 2))

import sys

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

from collections import deque



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



queue = deque()



edges = [[] for _ in range(N)]



for i in range(N-1):

    edges[i].append(i+1)

    edges[i+1].append(i)



edges[X-1].append(Y-1)

edges[Y-1].append(X-1)



ans = [0] * N



for i in range(N):

    visited = [0] * N

    visited[i] = 1

    queue.append((i,0))

    while queue:

        current, dist = queue.popleft()

        ans[dist] += 1



        for e in edges[current]:

            if visited[e] != 1:

                queue.append((e, dist+1))

                visited[e] = 1



ans = ans[1:]

for a in ans:

    print((a//2))
import sys

input = lambda: sys.stdin.readline().rstrip()
from collections import deque

N, X, Y = list(map(int, input().split()))
edges = [[] for _ in range(N)]
for i in range(N - 1):
    edges[i].append(i + 1)
    edges[i + 1].append(i)
edges[X - 1].append(Y - 1)
edges[Y - 1].append(X - 1)
ans = [0] * (N - 1)
queue = deque([])


def bfs(start):
    queue.extend(edges[start])
    visited = [False] * N
    visited[start] = True
    i = 0
    while queue:
        length = len(queue)
        for l in range(length):
            current = queue.popleft()
            if not visited[current]:
                ans[i] += 1
                if edges[current]:
                    queue.extend(edges[current])
                visited[current] = True
        i += 1


for i in range(N):
    bfs(i)
for i in ans:
    print((i // 2))

import sys

input = lambda: sys.stdin.readline().rstrip()
from collections import deque

N, X, Y = list(map(int, input().split()))
queue = deque()
edges = [[] for _ in range(N)]
for i in range(N - 1):
    edges[i].append(i + 1)
    edges[i + 1].append(i)
edges[X - 1].append(Y - 1)
edges[Y - 1].append(X - 1)
ans = [0] * N
for i in range(N):
    visited = [0] * N
    visited[i] = 1
    queue.append((i, 0))
    while queue:
        current, dist = queue.popleft()
        ans[dist] += 1
        for e in edges[current]:
            if visited[e] != 1:
                queue.append((e, dist + 1))
                visited[e] = 1
ans = ans[1:]
for a in ans:
    print((a // 2))

+queue = deque() -ans = [0] * (N - 1) -queue = deque([]) - - -def bfs(start): -    queue.extend(edges[start]) -    visited = [False] * N -    visited[start] = True -    i = 0 +ans = [0] * N +for i in range(N): +    visited = [0] * N +    visited[i] = 1 +    queue.append((i, 0)) -        length = len(queue) -        for l in range(length): -            current = queue.popleft() -            if not visited[current]: -                ans[i] += 1 -                if edges[current]: -                    queue.extend(edges[current]) -                visited[current] = True -        i += 1 - - -for i in range(N): -    bfs(i) -for i in ans: -    print((i // 2)) +        current, dist = queue.popleft() +        ans[dist] += 1 +        for e in edges[current]: +            if visited[e] != 1: +                queue.append((e, dist + 1)) +                visited[e] = 1 +ans = ans[1:] +for a in ans: +    print((a // 2))