#include <bits/stdc++.h>
using namespace std;
#define _GLIBCXX_DEBUG
#define rep(i, n) for (int i = 0; i < (int)(n); i++)

int main()
{
    int N, X, Y;
    cin >> N >> X >> Y;
    X--;
    Y--;
    bool dis[N][N] = {};
    vector<pair<int, int>> V;
    int counter = 0;
    rep(i, N - 1)
    {
        dis[i][i + 1] = true;
        counter++;
        V.push_back(make_pair(i, i + 1));
    }
    dis[X][Y] = true;
    V.push_back(make_pair(X, Y));
    counter++;
    cout << counter << endl;
    for (int i = 2; i < N; i++)
    {
        counter = 0;
        vector<pair<int, int>> W;
        for (auto v : V)
        {
            //    bool check = false;
            int v1 = v.first;
            //     if (v1 == -1)
            //         continue;
            int v2 = v.second;
            int v1p = v1 + 1;
            int v1m = v1 - 1;
            int v2p = v2 + 1;
            int v2m = v2 - 1;
            //     cout << "v1=" << v1 << ",v2=" << v2 << endl;
            if (v2p < N)
            {
                if (dis[v1][v2p] == false && v1 != v2p)
                {
                    counter++;
                    dis[v1][v2p] = true;
                    W.push_back(make_pair(v1, v2p));
                    //  v.second = v2p;
                    //            cout << "1:" << v1 + 1 << " " << v2p + 1 << endl;
                    //           check = true;
                }
                /*else
                {
                    v.first = -1;
                }*/
            }
            /*   else
            {
                v.first = -1;
            }*/
            if (dis[v1][v2m] == false && v1 != v2m)
            {
                counter++;
                dis[v1][v2m] = true;
                //      if (check == true)
                W.push_back(make_pair(v1, v2m));
                //    else
                //      v.second = v2m;
                //      cout << "2:" << v1 + 1 << " " << v2m + 1 << endl;
                //    check = true;
            }
            /*  else
            {
                v.first = -1;
            }*/

            if (v1m >= 0)
            {
                if (dis[v1m][v2] == false && v1m != v2)
                {
                    counter++;
                    dis[v1m][v2] = true;
                    //       if (check == true)
                    W.push_back(make_pair(v1m, v2));
                    //     else
                    //       v.first = v1m;
                    //         cout << "3:" << v1m + 1 << " " << v2 + 1 << endl;
                    //       check = true;
                }
                /* else
                {
                    v.first = -1;
                }*/
            }
            /* else
            {
                v.first = -1;
            }*/
            if (dis[v1p][v2] == false && v1p != v2)
            {
                counter++;
                dis[v1p][v2] = true;
                //      if (check == true)
                W.push_back(make_pair(v1p, v2));
                //       else
                //         v.first = v1p;
                //         cout << "4:" << v1p + 1 << " " << v2 + 1 << endl;
                //       check = true;
            }
            /* else
            {
                v.first = -1;
            }*/
        }
        cout << counter << endl;
        swap(V, W);
    }
}

Measured memory_bytes: 4224