package main
import (
"bufio"
"fmt"
"io"
"math/bits"
"os"
)
type FastScanner struct {
data []byte
idx int
}
func NewFastScanner() *FastScanner {
data, _ := io.ReadAll(os.Stdin)
return &FastScanner{data: data}
}
func (fs *FastScanner) NextInt() int {
n := len(fs.data)
for fs.idx < n && (fs.data[fs.idx] < '0' || fs.data[fs.idx] > '9') {
fs.idx++
}
val := 0
for fs.idx < n && fs.data[fs.idx] >= '0' && fs.data[fs.idx] <= '9' {
val = val*10 + int(fs.data[fs.idx]-'0')
fs.idx++
}
return val
}
func main() {
fs := NewFastScanner()
out := bufio.NewWriterSize(os.Stdout, 1<<20)
defer out.Flush()
t := fs.NextInt()
for ; t > 0; t-- {
n := fs.NextInt()
even := 0
minV := 1 << 30
for i := 0; i < n; i++ {
x := fs.NextInt()
if x&1 == 0 {
even++
v := bits.TrailingZeros(uint(x))
if v < minV {
minV = v
}
}
}
ans := 0
if even == 0 {
ans = 0
} else if even < n {
ans = even
} else {
ans = n - 1 + minV
}
fmt.Fprintln(out, ans)
}
}