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)



from collections import deque

def bfs(u):

    queue = deque([u])

    d = [None]*(N+1)

    d[u]=0

    while queue:

        v = queue.popleft()

        for i in g[v]:

            if d[i] is None:

                d[i]=d[v]+1

                queue.append(i)

    return d



ans = [0]*(N-1)

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

    d = bfs(i)

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

        if d[j]>0:

            ans[d[j]-1] += 1

for a in ans:

    print((a//2))
N,X,Y = list(map(int,input().split()))

g = [[] for _ in range(N+1)]

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

    if i != 1:

        g[i].append(i-1)

    if i != N:

        g[i].append(i+1)

g[X].append(Y)

g[Y].append(X)

from collections import deque

answer = [0]*(N+1)

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

    q = deque([i])

    d = [None]*(N+1)

    d[i] = 0

    while q:

        p = q.popleft()

        for j in g[p]:

            if d[j] == None:

                d[j] = d[p]+1

                q.append(j)

    for k in d[1:]:

        answer[k] += 1

for l in answer[1:-1]:

    print((l//2))
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)
from collections import deque


def bfs(u):
    queue = deque([u])
    d = [None] * (N + 1)
    d[u] = 0
    while queue:
        v = queue.popleft()
        for i in g[v]:
            if d[i] is None:
                d[i] = d[v] + 1
                queue.append(i)
    return d


ans = [0] * (N - 1)
for i in range(1, N + 1):
    d = bfs(i)
    for j in range(1, N + 1):
        if d[j] > 0:
            ans[d[j] - 1] += 1
for a in ans:
    print((a // 2))

N, X, Y = list(map(int, input().split()))
g = [[] for _ in range(N + 1)]
for i in range(1, N + 1):
    if i != 1:
        g[i].append(i - 1)
    if i != N:
        g[i].append(i + 1)
g[X].append(Y)
g[Y].append(X)
from collections import deque

answer = [0] * (N + 1)
for i in range(1, N + 1):
    q = deque([i])
    d = [None] * (N + 1)
    d[i] = 0
    while q:
        p = q.popleft()
        for j in g[p]:
            if d[j] == None:
                d[j] = d[p] + 1
                q.append(j)
    for k in d[1:]:
        answer[k] += 1
for l in answer[1:-1]:
    print((l // 2))

-for i in range(1, N): -    g[i].append(i + 1) -    g[i + 1].append(i) +for i in range(1, N + 1): +    if i != 1: +        g[i].append(i - 1) +    if i != N: +        g[i].append(i + 1) - -def bfs(u): -    queue = deque([u]) +answer = [0] * (N + 1) +for i in range(1, N + 1): +    q = deque([i]) -    d[u] = 0 -    while queue: -        v = queue.popleft() -        for i in g[v]: -            if d[i] is None: -                d[i] = d[v] + 1 -                queue.append(i) -    return d - - -ans = [0] * (N - 1) -for i in range(1, N + 1): -    d = bfs(i) -    for j in range(1, N + 1): -        if d[j] > 0: -            ans[d[j] - 1] += 1 -for a in ans: -    print((a // 2)) +    d[i] = 0 +    while q: +        p = q.popleft() +        for j in g[p]: +            if d[j] == None: +                d[j] = d[p] + 1 +                q.append(j) +    for k in d[1:]: +        answer[k] += 1 +for l in answer[1:-1]: +    print((l // 2))