package main
import (
"bufio"
"fmt"
"os"
"strconv"
"strings"
)
func ekstrakBit(angka int) []int {
var bit []int
if angka == 0 {
return []int{0}
}
for angka > 0 {
sisaBit := angka & 1
bit = append(bit, sisaBit)
angka = angka >> 1
}
return bit
}
func hitungNomorBit(angka int, nomorBit int) *int {
bit := ekstrakBit(angka)
indeksGrup := -1
i := 0
for i < len(bit) {
if bit[i] == 1 {
panjang := 0
for i < len(bit) && bit[i] == 1 {
panjang++
i++
}
indeksGrup++
if indeksGrup == nomorBit {
nilai := (1 << uint(panjang)) - 1
return &nilai
}
} else {
i++
}
}
return nil
}
func main() {
reader := bufio.NewReader(os.Stdin)
baca := func() string {
s, _ := reader.ReadString('\n')
return strings.TrimSpace(s)
}
q, _ := strconv.Atoi(baca())
for i := 0; i < q; i++ {
bagian := strings.Fields(baca())
angka, _ := strconv.Atoi(bagian[0])
nomorBit, _ := strconv.Atoi(bagian[1])
hasil := hitungNomorBit(angka, nomorBit)
if hasil == nil {
fmt.Println("null")
} else {
fmt.Println(*hasil)
}
}
}
cGFja2FnZSBtYWluCgppbXBvcnQgKAoJImJ1ZmlvIgoJImZtdCIKCSJvcyIKCSJzdHJjb252IgoJInN0cmluZ3MiCikKCmZ1bmMgZWtzdHJha0JpdChhbmdrYSBpbnQpIFtdaW50IHsKCXZhciBiaXQgW11pbnQKCWlmIGFuZ2thID09IDAgewoJCXJldHVybiBbXWludHswfQoJfQoJZm9yIGFuZ2thID4gMCB7CgkJc2lzYUJpdCA6PSBhbmdrYSAmIDEKCQliaXQgPSBhcHBlbmQoYml0LCBzaXNhQml0KQoJCWFuZ2thID0gYW5na2EgPj4gMSAKCX0KCXJldHVybiBiaXQKfQoKZnVuYyBoaXR1bmdOb21vckJpdChhbmdrYSBpbnQsIG5vbW9yQml0IGludCkgKmludCB7CgliaXQgOj0gZWtzdHJha0JpdChhbmdrYSkKCglpbmRla3NHcnVwIDo9IC0xCglpIDo9IDAKCWZvciBpIDwgbGVuKGJpdCkgewoJCWlmIGJpdFtpXSA9PSAxIHsKCQkJcGFuamFuZyA6PSAwCgkJCWZvciBpIDwgbGVuKGJpdCkgJiYgYml0W2ldID09IDEgewoJCQkJcGFuamFuZysrCgkJCQlpKysKCQkJfQoJCQlpbmRla3NHcnVwKysKCgkJCWlmIGluZGVrc0dydXAgPT0gbm9tb3JCaXQgewoJCQkJbmlsYWkgOj0gKDEgPDwgdWludChwYW5qYW5nKSkgLSAxCgkJCQlyZXR1cm4gJm5pbGFpCgkJCX0KCQl9IGVsc2UgewoJCQlpKysKCQl9Cgl9CgoJcmV0dXJuIG5pbCAKfQoKZnVuYyBtYWluKCkgewoJcmVhZGVyIDo9IGJ1ZmlvLk5ld1JlYWRlcihvcy5TdGRpbikKCWJhY2EgOj0gZnVuYygpIHN0cmluZyB7CgkJcywgXyA6PSByZWFkZXIuUmVhZFN0cmluZygnXG4nKQoJCXJldHVybiBzdHJpbmdzLlRyaW1TcGFjZShzKQoJfQoJcSwgXyA6PSBzdHJjb252LkF0b2koYmFjYSgpKQoJZm9yIGkgOj0gMDsgaSA8IHE7IGkrKyB7CgkJYmFnaWFuIDo9IHN0cmluZ3MuRmllbGRzKGJhY2EoKSkKCQlhbmdrYSwgXyA6PSBzdHJjb252LkF0b2koYmFnaWFuWzBdKQoJCW5vbW9yQml0LCBfIDo9IHN0cmNvbnYuQXRvaShiYWdpYW5bMV0pCgoJCWhhc2lsIDo9IGhpdHVuZ05vbW9yQml0KGFuZ2thLCBub21vckJpdCkKCQlpZiBoYXNpbCA9PSBuaWwgewoJCQlmbXQuUHJpbnRsbigibnVsbCIpCgkJfSBlbHNlIHsKCQkJZm10LlByaW50bG4oKmhhc2lsKQoJCX0KCX0KfQ==