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)

import java.io.*;
import java.util.*;

public class Main {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		while(true){
			String input = br.readLine();
			if(input.equals("0 0")){
				break;
			}
			String[] numbers = input.split(" ");
			Integer max = Integer.parseInt(numbers[0]);
			Integer target = Integer.parseInt(numbers[1]);
			ArrayList<Integer[]> result = new ArrayList<Integer[]>();
			String result_size = "";
			for(int i = 1; i <= max; i++){
				for(int j = i + 1; j <= max; j++){
					for(int k = j + 1; k <= max; k++){
						if(i + j + k == target){
								Integer[] comb = {i, j, k};
								Arrays.sort(comb);
								boolean is_contain = false;
								for(int l = 0; l< result.size(); l++){
									if(result.size() > 0 && Arrays.equals(result.get(l), comb)){
										is_contain = true;
									}
								}
									if(!is_contain){
										result.add(comb);
									}
						}
					}
				}
			}
			result_size = result_size + result.size() + "\n" ;
			System.out.print(result_size);
		}
	}
}