function getLines(input){
	return input.split("\n").map((s)=>s.trim())
}
function parseLine(line){
	return line.split(" ").map((s)=>s.trim());
}
function parseLineToInt(line){
	return line.split(" ").map((s)=>parseInt(s.trim()));
}

// parameter "input" gets all data
function Main(input) {
	// the first line is assigned to input[0], the second line is assigned to input[1] similarly.	
	input = getLines(input).map(parseLineToInt);
	var N = input[0][0];
	var X = input[0][1]-1;
	var Y = input[0][2]-1;
	var ans = [];	
	for (var i = 0; i < N; i++) {
		ans.push(0);
	}
	for (var i = 0; i < N-1; i++) {
		for (var j = i+1; j < N; j++) {
			if(i<=X){
				if(j<=X){
					ans[j-i]++;
				}else if(j<=Y){
					ans[X-i+Math.min(1+Y-j,j-X)]++;
				}else{
					ans[X-i+1+j-Y]++;
				}
			}else if(i>X && i<=Y){
				if(j<=Y){
					ans[Math.min(j-i,i-X+1+Y-j)]++;
				}else{
					ans[Math.min(Y-i,i-X+1)+j-Y]++;
				}
			}else if(i>=Y){
				ans[j-i]++;			
			}
		}
	}
	for (var i = 1; i < N; i++) {
		console.log(ans[i]);
	}
	
}

// Don't edit this line!
//Main(require("fs").readFileSync(__dirname+'/in.txt', "utf8"));
Main(require('fs').readFileSync('/dev/stdin', 'utf8'));
