import sys

from collections import deque

sys.setrecursionlimit(10 ** 7)

f_inf = float('inf')

mod = 10 ** 9 + 7





def resolve():

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

    tree = [[] for _ in range(n)]

    for i in range(1, n):

        tree[i - 1].append(i)

        tree[i].append(i - 1)



    tree[x - 1].append(y - 1)

    tree[y - 1].append(x - 1)



    def bfs(v):

        dist = [f_inf for _ in range(n)]

        dist[v] = 0

        q = deque()

        q.append(v)

        while q:

            u = q.popleft()

            for nv in tree[u]:

                if dist[nv] == f_inf:

                    dist[nv] = dist[u] + 1

                    q.append(nv)



        for d in dist:

            res[d] += 1



    res = [0 for _ in range(n)]

    for i in range(n):

        bfs(i)



    for j in range(1, n):

        print((res[j] // 2))





if __name__ == '__main__':

    resolve()

import sys

from collections import deque



sys.setrecursionlimit(10 ** 7)

input = sys.stdin.readline

f_inf = float('inf')

mod = 10 ** 9 + 7





def resolve():

    def bfs(root):

        dist = [f_inf] * n

        dist[root] = 0

        que = deque()

        que.append(root)

        while que:

            prev = que.popleft()

            for next in tree[prev]:

                if dist[next] == f_inf:

                    dist[next] = dist[prev] + 1

                    que.append(next)

        return dist



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

    tree = [[] for _ in range(n)]

    for i in range(n - 1):

        tree[i].append(i + 1)

        tree[i + 1].append(i)

    tree[x - 1].append(y - 1)

    tree[y - 1].append(x - 1)



    cnt = [0] * n

    for i in range(n):

        dist = bfs(i)

        for d in dist:

            cnt[d] += 1



    for i in range(1, n):

        print((cnt[i] // 2))





if __name__ == '__main__':

    resolve()

import sys
from collections import deque

sys.setrecursionlimit(10**7)
f_inf = float("inf")
mod = 10**9 + 7


def resolve():
    n, x, y = list(map(int, input().split()))
    tree = [[] for _ in range(n)]
    for i in range(1, n):
        tree[i - 1].append(i)
        tree[i].append(i - 1)
    tree[x - 1].append(y - 1)
    tree[y - 1].append(x - 1)

    def bfs(v):
        dist = [f_inf for _ in range(n)]
        dist[v] = 0
        q = deque()
        q.append(v)
        while q:
            u = q.popleft()
            for nv in tree[u]:
                if dist[nv] == f_inf:
                    dist[nv] = dist[u] + 1
                    q.append(nv)
        for d in dist:
            res[d] += 1

    res = [0 for _ in range(n)]
    for i in range(n):
        bfs(i)
    for j in range(1, n):
        print((res[j] // 2))


if __name__ == "__main__":
    resolve()

import sys
from collections import deque

sys.setrecursionlimit(10**7)
input = sys.stdin.readline
f_inf = float("inf")
mod = 10**9 + 7


def resolve():
    def bfs(root):
        dist = [f_inf] * n
        dist[root] = 0
        que = deque()
        que.append(root)
        while que:
            prev = que.popleft()
            for next in tree[prev]:
                if dist[next] == f_inf:
                    dist[next] = dist[prev] + 1
                    que.append(next)
        return dist

    n, x, y = list(map(int, input().split()))
    tree = [[] for _ in range(n)]
    for i in range(n - 1):
        tree[i].append(i + 1)
        tree[i + 1].append(i)
    tree[x - 1].append(y - 1)
    tree[y - 1].append(x - 1)
    cnt = [0] * n
    for i in range(n):
        dist = bfs(i)
        for d in dist:
            cnt[d] += 1
    for i in range(1, n):
        print((cnt[i] // 2))


if __name__ == "__main__":
    resolve()

+input = sys.stdin.readline +    def bfs(root): +        dist = [f_inf] * n +        dist[root] = 0 +        que = deque() +        que.append(root) +        while que: +            prev = que.popleft() +            for next in tree[prev]: +                if dist[next] == f_inf: +                    dist[next] = dist[prev] + 1 +                    que.append(next) +        return dist + -    for i in range(1, n): -        tree[i - 1].append(i) -        tree[i].append(i - 1) +    for i in range(n - 1): +        tree[i].append(i + 1) +        tree[i + 1].append(i) - -    def bfs(v): -        dist = [f_inf for _ in range(n)] -        dist[v] = 0 -        q = deque() -        q.append(v) -        while q: -            u = q.popleft() -            for nv in tree[u]: -                if dist[nv] == f_inf: -                    dist[nv] = dist[u] + 1 -                    q.append(nv) +    cnt = [0] * n +    for i in range(n): +        dist = bfs(i) -            res[d] += 1 - -    res = [0 for _ in range(n)] -    for i in range(n): -        bfs(i) -    for j in range(1, n): -        print((res[j] // 2)) +            cnt[d] += 1 +    for i in range(1, n): +        print((cnt[i] // 2))