n, m = gets.not_nil!.split.map(&.to_i) if n == 1 puts "0" exit end if n.even? puts (m.to_i64 * n).to_s exit end msi = 0 while (1 << (msi + 1)) <= m msi += 1 end sum = 0_i64 f = 0 i = msi bi = 1 << i while i >= 0 if (m & bi) != 0 sum += bi.to_i64 * (n - 1) f += 1 if f < n else sum += bi.to_i64 * ((f // 2) * 2) end i -= 1 bi >>= 1 end puts sum.to_s