#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<vector>#include<map>voidfre(){freopen("A.txt","r",stdin);freopen("Ans.txt","w",stdout);}
using namespace std;constint mxn =2e5+10;intmain(){/* fre(); */int t;scanf("%d",&t);while(t --){
string s;
cin >> s;int l =0, r =0;for(int i =0; i < s.size(); i ++){if(s[i]=='1'){
l = i +1;break;}}for(int i = s.size()-1; i >=0; i --){if(s[i]=='1'){
r = i -1;break;}}int fg =0;for(int i = l; i <= r; i ++){if(s[i]=='0')
fg ++;}if(r ==0){printf("0\n");continue;}printf("%d\n", fg);}return0;}
#include<iostream>#include<algorithm>#include<map>#include<set>#include<list>#include<queue>#include<deque>#include<cmath>#include<stack>#include<vector>#include<cstdio>#include<string>#include<cstring>
using namespace std;#define endl '\n'#define PI acos(-1)#define PB push_back#define ll long long#define db double#define INF 0x3f3f3f3f#define mod 998244353#define lowbit(abcd) (abcd & (-abcd))#define ios ios::sync_with_stdio(false);#define fre \
{ \
freopen("A.txt", "r", stdin); \
freopen("Ans.txt", "w", stdout); \
}constint mxn =65;
ll num[mxn];intmain(){/* fre; */int T;scanf("%d",&T);while(T --){
ll m, n, sum =0;;memset(num,0,sizeof(num));scanf("%lld %lld",&m,&n);
ll t;for(int i =1; i <= n; i++){scanf("%lld",&t);
sum += t;int s =0;while(t >1) s ++, t >>=1;
num[s]++;}if(sum < m){printf("-1\n");continue;}
ll f =0;//表示前面的低二进制为满2进入到更高为,之后更高位上的数值
ll ans =0;for(int i =0; i <=62; i ++){if((1LL<< i)& m) f --;//主要这里要使用 1LL if(f <0){int lv = i;while(! num[lv]) num[lv ++]=1;
num[lv]--;
ans += lv - i;
f =0;}
f += num[i];
f >>=1;}printf("%lld\n", ans);}return0;}