lib C fun strtoll(s : UInt8*, p : UInt8**, b : Int32) : Int64 end class String def to_i64 C.strtoll(self, nil, 10) end end n = read_line.to_i64 bits = (0..61).select { |i| n.bit(i) == 1 } med = (2i64 ** bits.size) // 2 puts (0...bits.size).select { |i| med.bit(i) == 1 }.sum { |i| 1i64 << bits[i] }