#include <iostream>
using namespace std;
int main(){
int t;cin>>t;
while (t--)
{
int n;
cin>>n;
int powsCount =0;
for (int i = 1; i <= n; i++)
{
int ii=i;
while (!(ii%2) and ii/2!=1)
{
ii/=2;
}
if (ii==2)
{
powsCount++;
}
}
int arrpowsWehave[powsCount];
for (int i = 1; i <= powsCount; i++)
{
arrpowsWehave[i-1]=i;
}
int twosReminder=0;
int steps=0;
for (int i = 0; i < n; i++)
{
int a;
cin>>a;
twosReminder+=1;
while (!(a%2))
{
a/=2;
twosReminder--;
}
}
for (int i=powsCount-1;i>=0;i--)
{
if(twosReminder>=arrpowsWehave[i]){
twosReminder-=arrpowsWehave[i];
steps++;
}
if (twosReminder==0)
{
break;
}
}
if(twosReminder!=0 and twosReminder>0){
steps=-1;
}
cout<<steps<<'\n';
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCl7CiAgICBpbnQgdDtjaW4+PnQ7CgogICAgd2hpbGUgKHQtLSkKICAgIHsKICAgICAgICBpbnQgbjsKICAgICAgICBjaW4+Pm47CiAgICAgICAgaW50IHBvd3NDb3VudCA9MDsKCiAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKQogICAgICAgIHsKICAgICAgICAgICAgaW50IGlpPWk7CiAgICAgICAgICAgd2hpbGUgKCEoaWklMikgYW5kIGlpLzIhPTEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWkvPTI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoaWk9PTIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgcG93c0NvdW50Kys7CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAKICAgICAgICB9CiAgICAgICAgCiAKICAgICAgICBpbnQgYXJycG93c1dlaGF2ZVtwb3dzQ291bnRdOwogICAgICAgIAogICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IHBvd3NDb3VudDsgaSsrKQogICAgICAgIHsKICAgICAgICAgICAgYXJycG93c1dlaGF2ZVtpLTFdPWk7CiAgICAgICAgICAgIAogICAgICAgIH0KICAgICAgICAKICAgICAgICBpbnQgdHdvc1JlbWluZGVyPTA7CgogICAgICAgIGludCBzdGVwcz0wOwogICAgICAgICAgICAKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKICAgICAgICB7CiAgICAgICAgICAgIGludCBhOwogICAgICAgICAgICBjaW4+PmE7CiAgICAgICAgICAgIHR3b3NSZW1pbmRlcis9MTsKICAgICAgICAgICAgCiAgICAgICAgICAgIHdoaWxlICghKGElMikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGEvPTI7CiAgICAgICAgICAgICAgICB0d29zUmVtaW5kZXItLTsKICAgICAgICAgICAgCiAgICAgICAgICAgICAgIAogICAgICAgICAgICB9CiAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZm9yIChpbnQgaT1wb3dzQ291bnQtMTtpPj0wO2ktLSkKICAgICAgICB7CiAgICAgICAgICAgaWYodHdvc1JlbWluZGVyPj1hcnJwb3dzV2VoYXZlW2ldKXsKICAgICAgICAgICAgdHdvc1JlbWluZGVyLT1hcnJwb3dzV2VoYXZlW2ldOwogICAgICAgICAgICBzdGVwcysrOwogICAgICAgICAgIH0KICAgICAgICAgICBpZiAodHdvc1JlbWluZGVyPT0wKQogICAgICAgICAgIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgfQogICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICB9CiAgICAgICAgaWYodHdvc1JlbWluZGVyIT0wIGFuZCB0d29zUmVtaW5kZXI+MCl7CiAgICAgICAgICAgIHN0ZXBzPS0xOwogICAgICAgIH0KICAgICAgICBjb3V0PDxzdGVwczw8J1xuJzsKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgIH0gICAKfQ==