#include<bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp> 
using namespace __gnu_pbds;
using namespace std;
#define in(s) ll s; cin >> s
#define prarr(a, i ,n) fab(j, i , n) cout << a[j] << " "
#define wh(t) ll t; cin >> t; while(t--)
#define sz(u) u.size()
#define deb(x) cout << #x << " " << x << endl
#define all(v) v.begin(),v.end()
#define rall(v) v.rbegin(),v.rend()
#define arr(a,n) vl a(n, 0); fab(i, 0, n) cin >> a[i]
#define fab(i,a,b) for(ll i = a; i < b; i++)
#define fba(i,b,a) for(ll i = b; i >= a; i--)
#define fa(i, x) for(auto i: x)
#define mem(s, j) memset(s, j, sizeof(s))
#define sup ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)
#define endl "\n"
#define ll long long int
#define vl vector<ll>
#define vpl vector<pl>
#define pl pair<ll, ll>
#define pll pair<ll, pl>
#define vvl vector<vl>
#define vvpl vector<vpl>
#define mxe(x) *max_element(x)
#define mne(x) *min_element(x)
#define mp make_pair
#define pb push_back
#define fs first
#define sd second
#define fr front()
#define bk back()
#define rr return
const ll N = (ll)3e5;
const ll inf = (ll)1e18 + 7;
const ll mod = (ll)1e9 + 7;
const ll MX = (ll)1e9 + 7;
const ll MAX = (ll)1e12 + 7;

bool sortbysec(const pair<ll, ll> &a,const pair<ll, ll> &b){ return (a.second < b.second);}

//-------------policy based-----------------------------
typedef tree<int, null_type, less<int>, rb_tree_tag, 
        tree_order_statistics_node_update> pb_set;
//------------------------------------------------------


vector<char> dir = {'L', 'R', 'U', 'D'};
vl dx = {-1, 1, 0, 0};
vl dy = {0, 0, -1, 1};

void add(ll &x, ll y){
    x = ((x % mod) + (y % mod)) % mod;
}

void mul(ll &x, ll y){
    x = ((x % mod) * (y % mod)) % mod;
}

ll sm(vl a, ll y) {
    ll sum = 0, x = 0;
    for(auto i: a) {
        sum += i;
        x++;
        if(x == y)
            break;
    }
    return sum;
}

ll power(ll x, ll y) 
{ 
    if (y == 0) 
        return 1; 
    else if (y % 2 == 0) 
        return power(x, y / 2) * power(x, y / 2); 
    else
        return x * power(x, y / 2) * power(x, y / 2); 
}
 
bool isPrime(ll p)
{
    for(ll i = 2;i * i <= p; i++)
        if(p % i == 0)
            rr false;
    rr true;
}


int main()
{
	sup;
    
    ll x, y, n;
    cin >> n >> x >> y;
    vvl dis(n + 1, vl(n + 1, inf));
    fab(i, 1, n + 1) {
        fab(j, 1, n + 1){
            if(i != j) {
                dis[i][j] = abs(j - i);
                dis[j][i] = dis[i][j];
            }
        }
    }
    dis[x][y] = 1;
    fab(i, 1, n + 1) {
        if(i != y) {
            dis[i][y] = min(dis[i][y], dis[i][x] + 1);
            dis[y][i] = dis[i][y];
        }
    }
    fab(i, 1, n + 1) {
        if(i != x) {
            dis[i][x] = min(dis[i][x], dis[i][y] + 1);
            dis[x][i] = dis[i][x];
        }
    }
    fab(i, 1, n + 1) {
        fab(j, 1, n + 1){
            if(i != j) {
                dis[i][j] = min(dis[i][j], dis[i][x] + dis[y][j] + 1);
                dis[j][i] = dis[i][j];
            }
        }
    }
    map<ll, ll> m;
    for(auto &i: dis) {
        for(auto j: i) {
            m[j]++;
        }
    }
    fab(i, 1, n) {
        cout << m[i] / 2 << endl;
    }
    return 0;
}

Measured memory_bytes: 31744