    loop do

      max, sum = gets.split.map(&:to_i)
      max.zero? && sum.zero? && break

      count = 0

      1.upto(max) do | n1 |

          (n1 + 1).upto(max) do | n2 |
            break if n1 + n2 > sum

            (n2 + 1).upto(max) do | n3 |
              break if n1 + n2 + n3 == sum && count += 1

          end
        end
      end

      puts count

    end

