def _comb(n, count = 3)
  return [n] if count == 1

  (1..(n-1)).to_a.reverse.flat_map{|e|
    _comb(e, count - 1).map{|z|
      [n, *z]
    }
  }
end

def comb(n)
  (1..n).to_a.reverse.flat_map{|e|
    _comb(e)
  }
end

loop {
  n, x = gets.split.map(&:to_i)
  break if n == 0 && x == 0

  puts comb(n).map(&:sum).count(x)
}
