/**
 から 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;
			}
			
			for (int i = 1; i <= intN; i++) {
				for (int j = 1; j <= intN; j++) {
					for (int k = 1; k <= intN; k++) {
						if(i == j || j == k || i == k){

						}else if ( i + j + k == intX){
							intKekka ++;
							}
						}
					}
				}
			System.out.println(intKekka/6);
			}

		}
	} import java.util.Scanner; Scanner java.util 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;
			}
			
			for (int i = 1; i <= intN; i++) {
				for (int j = 1; j <= intN; j++) {
					for (int k = 1; k <= intN; k++) {
						if(i == j || j == k || i == k){

						}else if ( i + j + k == intX){
							intKekka ++;
							}
						}
					}
				}
			System.out.println(intKekka/6);
			}

		}
	} 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;
			}
			
			for (int i = 1; i <= intN; i++) {
				for (int j = 1; j <= intN; j++) {
					for (int k = 1; k <= intN; k++) {
						if(i == j || j == k || i == k){

						}else if ( i + j + k == intX){
							intKekka ++;
							}
						}
					}
				}
			System.out.println(intKekka/6);
			}

		} main {
		// 入力ストリームの生成
		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;
			}
			
			for (int i = 1; i <= intN; i++) {
				for (int j = 1; j <= intN; j++) {
					for (int k = 1; k <= intN; k++) {
						if(i == j || j == k || i == k){

						}else if ( i + j + k == intX){
							intKekka ++;
							}
						}
					}
				}
			System.out.println(intKekka/6);
			}

		} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int intN = 0; intN 0 int intX = 0; intX 0 int intKekka = 0; intKekka 0 while (true) {

			intN = sc.nextInt();
			intX = sc.nextInt();
			intKekka = 0;
			if (intN == 0 && intX == 0) {
				break;
			}
			
			for (int i = 1; i <= intN; i++) {
				for (int j = 1; j <= intN; j++) {
					for (int k = 1; k <= intN; k++) {
						if(i == j || j == k || i == k){

						}else if ( i + j + k == intX){
							intKekka ++;
							}
						}
					}
				}
			System.out.println(intKekka/6);
			} true {

			intN = sc.nextInt();
			intX = sc.nextInt();
			intKekka = 0;
			if (intN == 0 && intX == 0) {
				break;
			}
			
			for (int i = 1; i <= intN; i++) {
				for (int j = 1; j <= intN; j++) {
					for (int k = 1; k <= intN; k++) {
						if(i == j || j == k || i == k){

						}else if ( i + j + k == intX){
							intKekka ++;
							}
						}
					}
				}
			System.out.println(intKekka/6);
			} intN = sc.nextInt() intN sc.nextInt() sc.nextInt sc intX = sc.nextInt() intX sc.nextInt() sc.nextInt sc intKekka = 0 intKekka 0 if (intN == 0 && intX == 0) {
				break;
			} intN == 0 && intX == 0 intN == 0 intN 0 intX == 0 intX 0 {
				break;
			} break; for (int i = 1; i <= intN; i++) {
				for (int j = 1; j <= intN; j++) {
					for (int k = 1; k <= intN; k++) {
						if(i == j || j == k || i == k){

						}else if ( i + j + k == intX){
							intKekka ++;
							}
						}
					}
				} int i = 1; int i = 1; i 1 i <= intN i intN i++ i++ i {
				for (int j = 1; j <= intN; j++) {
					for (int k = 1; k <= intN; k++) {
						if(i == j || j == k || i == k){

						}else if ( i + j + k == intX){
							intKekka ++;
							}
						}
					}
				} {
				for (int j = 1; j <= intN; j++) {
					for (int k = 1; k <= intN; k++) {
						if(i == j || j == k || i == k){

						}else if ( i + j + k == intX){
							intKekka ++;
							}
						}
					}
				} for (int j = 1; j <= intN; j++) {
					for (int k = 1; k <= intN; k++) {
						if(i == j || j == k || i == k){

						}else if ( i + j + k == intX){
							intKekka ++;
							}
						}
					} int j = 1; int j = 1; j 1 j <= intN j intN j++ j++ j {
					for (int k = 1; k <= intN; k++) {
						if(i == j || j == k || i == k){

						}else if ( i + j + k == intX){
							intKekka ++;
							}
						}
					} {
					for (int k = 1; k <= intN; k++) {
						if(i == j || j == k || i == k){

						}else if ( i + j + k == intX){
							intKekka ++;
							}
						}
					} for (int k = 1; k <= intN; k++) {
						if(i == j || j == k || i == k){

						}else if ( i + j + k == intX){
							intKekka ++;
							}
						} int k = 1; int k = 1; k 1 k <= intN k intN k++ k++ k {
						if(i == j || j == k || i == k){

						}else if ( i + j + k == intX){
							intKekka ++;
							}
						} {
						if(i == j || j == k || i == k){

						}else if ( i + j + k == intX){
							intKekka ++;
							}
						} if(i == j || j == k || i == k){

						}else if ( i + j + k == intX){
							intKekka ++;
							} i == j || j == k || i == k i == j || j == k || i == k i == j i j j == k j k i == k i k {

						} if ( i + j + k == intX){
							intKekka ++;
							} i + j + k == intX i + j + k i + j + k i j k intX {
							intKekka ++;
							} intKekka ++ intKekka System.out.println(intKekka/6) System.out.println System.out System System.out intKekka/6 intKekka 6 String[] args args
/**
 から 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;
			}
			
			for (int i = 1; i <= intN; i++) {
				for (int j = 1; j <= intN; j++) {
					for (int k = 1; k <= intN; k++) {
						if(i == j || j == k || i == k){

						}else if ( i + j + k == intX){
							intKekka ++;
							}
						}
					}
				}
			System.out.println(intKekka/6);
			}

		}
	}