output_description: Print the number of the triples of X, Y and Z that satisfy the condition.
  
  * * *
input_description: The input is given from Standard Input in the following format:
  
      
      
      K S
attempt: import sys
  from sys import exit
  from collections import deque
  from bisect import (
      bisect_left,
      bisect_right,
      insort_left,
      insort_right,
  )  # func(リスト,値)
  from heapq import heapify, heappop, heappush
  from itertools import product, permutations, combinations, combinations_with_replacement
  from functools import reduce
  from math import sin, cos, tan, asin, acos, atan
  
  sys.setrecursionlimit(10**6)
  INF = 10**20
  eps = 1.0e-20
  MOD = 10**9 + 7
  
  
  def lcm(x, y):
      return x * y // gcd(x, y)
  
  
  def lgcd(l):
      return reduce(gcd, l)
  
  
  def llcm(l):
      return reduce(lcm, l)
  
  
  def powmod(n, i, mod):
      return pow(n, mod - 1 + i, mod) if i < 0 else pow(n, i, mod)
  
  
  def div2(x):
      return x.bit_length()
  
  
  def div10(x):
      return len(str(x)) - (x == 0)
  
  
  def perm(n, mod=None):
      ans = 1
      for i in range(1, n + 1):
          ans *= i
          if mod != None:
              ans %= mod
      return ans
  
  
  def intput():
      return int(input())
  
  
  def mint():
      return map(int, input().split())
  
  
  def lint():
      return list(map(int, input().split()))
  
  
  def ilint():
      return int(input()), list(map(int, input().split()))
  
  
  def judge(x, l=["Yes", "No"]):
      print(l[0] if x else l[1])
  
  
  def lprint(l, sep="\n"):
      for x in l:
          print(x, end=sep)
  
  
  def ston(c, c0="a"):
      return ord(c) - ord(c0)
  
  
  def ntos(x, c0="a"):
      return chr(x + ord(c0))
  
  
  class counter(dict):
      def __init__(self, *args):
          super().__init__(args)
  
      def add(self, x):
          self.setdefault(x, 0)
          self[x] += 1
  
  
  class comb:
      def __init__(self, n, mod=None):
          self.l = [1]
          self.n = n
          self.mod = mod
  
      def get(self, k):
          l, n, mod = self.l, self.n, self.mod
          k = n - k if k > n // 2 else k
          while len(l) <= k:
              i = len(l)
              l.append(
                  l[i - 1] * (n + 1 - i) // i
                  if mod == None
                  else (l[i - 1] * (n + 1 - i) * powmod(i, -1, mod)) % mod
              )
          return l[k]
  
  
  K, S = mint()
  ans = 0
  for X in range(K + 1):
      for Y in range(K + 1):
          if S - X - Y in range(K + 1):
              ans += 1
  print(ans)
  
problem_description: Statement
  
  You are given two integers K and S.  
  Three variable X, Y and Z takes integer values satisfying 0≤X,Y,Z≤K.  
  How many different assignments of values to X, Y and Z are there such that X +
  Y + Z = S?
samples: [{"input": "2 2", "output": "6\n    \n\nThere are six triples of X, Y and Z that satisfy the condition:\n\n  * X = 0, Y = 0, Z = 2\n  * X = 0, Y = 2, Z = 0\n  * X = 2, Y = 0, Z = 0\n  * X = 0, Y = 1, Z = 1\n  * X = 1, Y = 0, Z = 1\n  * X = 1, Y = 1, Z = 0\n\n* * *"}, {"input": "5 15", "output": "1\n    \n\nThe maximum value of X + Y + Z is 15, achieved by one triple of X, Y and Z."}]