import java.util.*;

public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		while(true){
			int n=sc.nextInt();
			int x=sc.nextInt();
			if(n==0&&x==0){
				break;
			}else{
				int count=0;
				if(x<6){
					System.out.println("0");
				}else{
					if(x-3>n){
						for(int i=n;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
									count++;
									}
								}else{
									break;
								}
							}
						}
					}else{
						for(int i=x-3;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
										count++;
									}
								}else{
									break;
								}
							}
						}						
					}
					System.out.println(count);
				}
			}
		}
	}
} import java.util.*; util.* java public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		while(true){
			int n=sc.nextInt();
			int x=sc.nextInt();
			if(n==0&&x==0){
				break;
			}else{
				int count=0;
				if(x<6){
					System.out.println("0");
				}else{
					if(x-3>n){
						for(int i=n;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
									count++;
									}
								}else{
									break;
								}
							}
						}
					}else{
						for(int i=x-3;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
										count++;
									}
								}else{
									break;
								}
							}
						}						
					}
					System.out.println(count);
				}
			}
		}
	}
} Main public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		while(true){
			int n=sc.nextInt();
			int x=sc.nextInt();
			if(n==0&&x==0){
				break;
			}else{
				int count=0;
				if(x<6){
					System.out.println("0");
				}else{
					if(x-3>n){
						for(int i=n;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
									count++;
									}
								}else{
									break;
								}
							}
						}
					}else{
						for(int i=x-3;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
										count++;
									}
								}else{
									break;
								}
							}
						}						
					}
					System.out.println(count);
				}
			}
		}
	} main {
		Scanner sc = new Scanner(System.in);
		while(true){
			int n=sc.nextInt();
			int x=sc.nextInt();
			if(n==0&&x==0){
				break;
			}else{
				int count=0;
				if(x<6){
					System.out.println("0");
				}else{
					if(x-3>n){
						for(int i=n;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
									count++;
									}
								}else{
									break;
								}
							}
						}
					}else{
						for(int i=x-3;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
										count++;
									}
								}else{
									break;
								}
							}
						}						
					}
					System.out.println(count);
				}
			}
		}
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) while(true){
			int n=sc.nextInt();
			int x=sc.nextInt();
			if(n==0&&x==0){
				break;
			}else{
				int count=0;
				if(x<6){
					System.out.println("0");
				}else{
					if(x-3>n){
						for(int i=n;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
									count++;
									}
								}else{
									break;
								}
							}
						}
					}else{
						for(int i=x-3;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
										count++;
									}
								}else{
									break;
								}
							}
						}						
					}
					System.out.println(count);
				}
			}
		} true {
			int n=sc.nextInt();
			int x=sc.nextInt();
			if(n==0&&x==0){
				break;
			}else{
				int count=0;
				if(x<6){
					System.out.println("0");
				}else{
					if(x-3>n){
						for(int i=n;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
									count++;
									}
								}else{
									break;
								}
							}
						}
					}else{
						for(int i=x-3;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
										count++;
									}
								}else{
									break;
								}
							}
						}						
					}
					System.out.println(count);
				}
			}
		} int n=sc.nextInt(); n sc.nextInt() sc.nextInt sc int x=sc.nextInt(); x sc.nextInt() sc.nextInt sc if(n==0&&x==0){
				break;
			}else{
				int count=0;
				if(x<6){
					System.out.println("0");
				}else{
					if(x-3>n){
						for(int i=n;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
									count++;
									}
								}else{
									break;
								}
							}
						}
					}else{
						for(int i=x-3;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
										count++;
									}
								}else{
									break;
								}
							}
						}						
					}
					System.out.println(count);
				}
			} n==0&&x==0 n==0 n 0 x==0 x 0 {
				break;
			} break; {
				int count=0;
				if(x<6){
					System.out.println("0");
				}else{
					if(x-3>n){
						for(int i=n;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
									count++;
									}
								}else{
									break;
								}
							}
						}
					}else{
						for(int i=x-3;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
										count++;
									}
								}else{
									break;
								}
							}
						}						
					}
					System.out.println(count);
				}
			} int count=0; count 0 if(x<6){
					System.out.println("0");
				}else{
					if(x-3>n){
						for(int i=n;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
									count++;
									}
								}else{
									break;
								}
							}
						}
					}else{
						for(int i=x-3;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
										count++;
									}
								}else{
									break;
								}
							}
						}						
					}
					System.out.println(count);
				} x<6 x 6 {
					System.out.println("0");
				} System.out.println("0") System.out.println System.out System System.out "0" {
					if(x-3>n){
						for(int i=n;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
									count++;
									}
								}else{
									break;
								}
							}
						}
					}else{
						for(int i=x-3;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
										count++;
									}
								}else{
									break;
								}
							}
						}						
					}
					System.out.println(count);
				} if(x-3>n){
						for(int i=n;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
									count++;
									}
								}else{
									break;
								}
							}
						}
					}else{
						for(int i=x-3;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
										count++;
									}
								}else{
									break;
								}
							}
						}						
					} x-3>n x-3 x 3 n {
						for(int i=n;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
									count++;
									}
								}else{
									break;
								}
							}
						}
					} for(int i=n;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
									count++;
									}
								}else{
									break;
								}
							}
						} int i=n; int i=n; i n i>x/3 i x/3 x 3 i-- i-- i {
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
									count++;
									}
								}else{
									break;
								}
							}
						} {
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
									count++;
									}
								}else{
									break;
								}
							}
						} for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
									count++;
									}
								}else{
									break;
								}
							} int j=i-1; int j=i-1; j i-1 i 1 j>1 j 1 j-- j-- j {
								if(x-i-j<j){
									if(x-i-j>0){
									count++;
									}
								}else{
									break;
								}
							} {
								if(x-i-j<j){
									if(x-i-j>0){
									count++;
									}
								}else{
									break;
								}
							} if(x-i-j<j){
									if(x-i-j>0){
									count++;
									}
								}else{
									break;
								} x-i-j<j x-i-j x-i-j x i j j {
									if(x-i-j>0){
									count++;
									}
								} if(x-i-j>0){
									count++;
									} x-i-j>0 x-i-j x-i-j x i j 0 {
									count++;
									} count++ count {
									break;
								} break; {
						for(int i=x-3;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
										count++;
									}
								}else{
									break;
								}
							}
						}						
					} for(int i=x-3;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
										count++;
									}
								}else{
									break;
								}
							}
						} int i=x-3; int i=x-3; i x-3 x 3 i>x/3 i x/3 x 3 i-- i-- i {
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
										count++;
									}
								}else{
									break;
								}
							}
						} {
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
										count++;
									}
								}else{
									break;
								}
							}
						} for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
										count++;
									}
								}else{
									break;
								}
							} int j=i-1; int j=i-1; j i-1 i 1 j>1 j 1 j-- j-- j {
								if(x-i-j<j){
									if(x-i-j>0){
										count++;
									}
								}else{
									break;
								}
							} {
								if(x-i-j<j){
									if(x-i-j>0){
										count++;
									}
								}else{
									break;
								}
							} if(x-i-j<j){
									if(x-i-j>0){
										count++;
									}
								}else{
									break;
								} x-i-j<j x-i-j x-i-j x i j j {
									if(x-i-j>0){
										count++;
									}
								} if(x-i-j>0){
										count++;
									} x-i-j>0 x-i-j x-i-j x i j 0 {
										count++;
									} count++ count {
									break;
								} break; System.out.println(count) System.out.println System.out System System.out count String[] args args public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		while(true){
			int n=sc.nextInt();
			int x=sc.nextInt();
			if(n==0&&x==0){
				break;
			}else{
				int count=0;
				if(x<6){
					System.out.println("0");
				}else{
					if(x-3>n){
						for(int i=n;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
									count++;
									}
								}else{
									break;
								}
							}
						}
					}else{
						for(int i=x-3;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
										count++;
									}
								}else{
									break;
								}
							}
						}						
					}
					System.out.println(count);
				}
			}
		}
	}
} public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		while(true){
			int n=sc.nextInt();
			int x=sc.nextInt();
			if(n==0&&x==0){
				break;
			}else{
				int count=0;
				if(x<6){
					System.out.println("0");
				}else{
					if(x-3>n){
						for(int i=n;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
									count++;
									}
								}else{
									break;
								}
							}
						}
					}else{
						for(int i=x-3;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
										count++;
									}
								}else{
									break;
								}
							}
						}						
					}
					System.out.println(count);
				}
			}
		}
	}
} Main
import java.util.*;

public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		while(true){
			int n=sc.nextInt();
			int x=sc.nextInt();
			if(n==0&&x==0){
				break;
			}else{
				int count=0;
				if(x<6){
					System.out.println("0");
				}else{
					if(x-3>n){
						for(int i=n;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
									count++;
									}
								}else{
									break;
								}
							}
						}
					}else{
						for(int i=x-3;i>x/3;i--){
							for(int j=i-1;j>1;j--){
								if(x-i-j<j){
									if(x-i-j>0){
										count++;
									}
								}else{
									break;
								}
							}
						}						
					}
					System.out.println(count);
				}
			}
		}
	}
}