code: def extractTwos(m):
      
      # the problem can be break down to count how many '0's are there in
      # the end of bin(m). This can be done this way: m & a stretch of '1's
      # which can be represent as (2 ** n) - 1.
      assert m >= 0
      i = 0
      while m & (2 ** i) == 0:
          i += 1
      return i, m >> i
docs: m is a positive integer. A tuple (s, d) of integers is returned
      such that m = (2 ** s) * d.