def main():

    dist = []

    import numpy as np

    from collections import deque

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

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

    for i in range(n-1):



        g[i] += i+1,

        g[i+1] += i,

    g[x-1] += y-1,

    g[y-1] += x-1,

    a = [0]*n

    for start in range(n):

        d = [-1] * n

        d[start] = 0

        q = deque([start])

        while q:

            v = q.popleft()

            for nv in g[v]:

                if d[nv] < 0:

                    d[nv] = d[v]+1

                    q.append(nv)

        for i in d:

            a[i] += 1

    #     dist.append(d)

    # dist = np.array(dist).flatten()

    # for i in range(1,n):

    #     print(int(np.count_nonzero(dist==i)/2))

    # for i in range(1,n):

    #     print(int(a[i]/2))

    print((' '.join(str(i//2) for i in a[1:])))

main()
def main():

    dist = []

    import numpy as np

    from collections import deque

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

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

    for i in range(n-1):



        g[i] += i+1,

        g[i+1] += i,

    g[x-1] += y-1,

    g[y-1] += x-1,

    a = [0]*n

    for start in range(n):

        d = [-1] * n

        d[start] = 0

        q = deque([start])

        add,pop=q.append,q.popleft

        while q:

            v = pop()

            for nv in g[v]:

                if d[nv] < 0:

                    d[nv] = d[v]+1

                    add(nv)

        for i in d:

            a[i] += 1

    #     dist.append(d)

    # dist = np.array(dist).flatten()

    # for i in range(1,n):

    #     print(int(np.count_nonzero(dist==i)/2))

    for i in range(1,n):

        print((int(a[i]/2)))

    # print(' '.join(str(i//2) for i in a[1:]))

main()
def main():
    dist = []
    import numpy as np
    from collections import deque

    n, x, y = list(map(int, input().split()))
    g = [[] for _ in range(n)]
    for i in range(n - 1):
        g[i] += (i + 1,)
        g[i + 1] += (i,)
    g[x - 1] += (y - 1,)
    g[y - 1] += (x - 1,)
    a = [0] * n
    for start in range(n):
        d = [-1] * n
        d[start] = 0
        q = deque([start])
        while q:
            v = q.popleft()
            for nv in g[v]:
                if d[nv] < 0:
                    d[nv] = d[v] + 1
                    q.append(nv)
        for i in d:
            a[i] += 1
    #     dist.append(d)
    # dist = np.array(dist).flatten()
    # for i in range(1,n):
    #     print(int(np.count_nonzero(dist==i)/2))
    # for i in range(1,n):
    #     print(int(a[i]/2))
    print((" ".join(str(i // 2) for i in a[1:])))


main()

def main():
    dist = []
    import numpy as np
    from collections import deque

    n, x, y = list(map(int, input().split()))
    g = [[] for _ in range(n)]
    for i in range(n - 1):
        g[i] += (i + 1,)
        g[i + 1] += (i,)
    g[x - 1] += (y - 1,)
    g[y - 1] += (x - 1,)
    a = [0] * n
    for start in range(n):
        d = [-1] * n
        d[start] = 0
        q = deque([start])
        add, pop = q.append, q.popleft
        while q:
            v = pop()
            for nv in g[v]:
                if d[nv] < 0:
                    d[nv] = d[v] + 1
                    add(nv)
        for i in d:
            a[i] += 1
    #     dist.append(d)
    # dist = np.array(dist).flatten()
    # for i in range(1,n):
    #     print(int(np.count_nonzero(dist==i)/2))
    for i in range(1, n):
        print((int(a[i] / 2)))
    # print(' '.join(str(i//2) for i in a[1:]))


main()

+        add, pop = q.append, q.popleft -            v = q.popleft() +            v = pop() -                    q.append(nv) +                    add(nv) -    # for i in range(1,n): -    #     print(int(a[i]/2)) -    print((" ".join(str(i // 2) for i in a[1:]))) +    for i in range(1, n): +        print((int(a[i] / 2))) +    # print(' '.join(str(i//2) for i in a[1:]))