Problem:
How many ways?

Write a program which identifies the number of combinations of three integers which satisfy the following conditions:

You should select three distinct integers from 1 to n.

A total sum of the three integers is x.

For example, there are two combinations for n = 5 and x = 9.

1 + 3 + 5 = 9

2 + 3 + 4 = 9

Input

The input consists of multiple datasets. For each dataset, two integers n and x are given in a line.

The input ends with two zeros for n and x respectively. Your program should not process for these terminal symbols.

Constraints

3 ≤ n ≤ 100

0 ≤ x ≤ 300

Output

For each dataset, print the number of combinations in a line.

Sample Input

5 9
0 0

Sample Output

2

Note

      解説

Solution in JAVA (judge verdict: Accepted)

/**
1 から n までの数の中から、重複無しで３つの数を選びそれらの合計が x となる組み合わせの数を求めるプログラムを作成して下さい。

例えば、1 から 5 までの数から３つを選んでそれらの合計が 9 となる組み合わせは、
?1 + 3 + 5 = 9
?2 + 3 + 4 = 9

の２通りがあります。

 */

/*sucannerクラス使うためにインポート*/
import java.util.Scanner;

class Main {
	// プログラムのエントリポイント
	public static void main(String[] args) {
		// 入力ストリームの生成
		Scanner sc = new Scanner(System.in);
		// 点数を受け取る変数を宣言
		int intN = 0;
		int intX = 0;
		int intKekka = 0;

		// breakされるまで処理をくりかえす
		while (true) {

			// 数字を二つ受け取る
			intN = sc.nextInt();
			intX = sc.nextInt();
			//結果を表示する変数
			intKekka = 0;
			//二つの数値が０だった場合処理を狩猟する
			if (intN == 0 && intX == 0) {
				break;
			}

			//受け取った数字N*N*N回処理を実行する
			for (int i = 1; i <= intN; i++) {
				for (int j = 1; j <= intN; j++) {
					for (int k = 1; k <= intN; k++) {
						//ijkが同じ数字だったときなにもしない
						if(i == j || j == k || i == k){
						//Nの数字を３つ足していって合計がXだった場合結果に１プラスする。
						}else if ( i + j + k == intX){
							intKekka ++;
							}
						}
					}
				}
			//1*2*3　３つの数字を並びかえて同じ結果を６つ表示できるので なので６で割って結果表示
			System.out.println(intKekka/6);
			}

		}
	}