import std.stdio;
import std.conv;
import std.string;
import std.typecons;
import std.algorithm;
import std.array;
import std.range;
import std.math;
import std.regex : regex;
import std.container;
import std.bigint;


void main()
{
  int n, x, y;
  readf("%s %s %s\n", &n, &x, &y);
  auto g = new int[][](n, n);
  foreach (i; 0..n) {
    g[i][] = int.max / 2 - 1;
  }
  foreach (i; 0..n-1) {
    g[i][i+1] = 1;
    g[i+1][i] = 1;
  }
  g[x-1][y-1] = 1;
  g[y-1][x-1] = 1;

  foreach (k; 0..n) {
    foreach (i; 0..n) {
      foreach (j; 0..n) {
        g[i][j] = min(g[i][j], g[i][k] + g[k][j]);
      }
    }
  }

  auto res = new int[](n);
  foreach (i; 0..n-1) {
    foreach (j; i+1..n) {
      if (i == j) continue;
      res[g[i][j]-1]++;
    }
  }
  foreach (i; 0..n-1) {
    res[i].writeln;
  }
}
