#include <bits/stdc++.h>
using namespace std;
const int N = 100005;
long long ara[N];
long long n, m;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(nullptr);
  int t;
  cin >> t;
  while (t--) {
    cin >> n >> m;
    multiset<long long> st;
    long long s = 0;
    for (int i = 1; i <= m; i++) {
      cin >> ara[i];
      s += ara[i];
      st.insert(ara[i]);
    }
    if (s < n) {
      cout << -1 << "\n";
      continue;
    }
    long long ans = 0;
    for (int i = 0; i <= 51; i++) {
      long long v = 1LL << i;
      if (n & v) {
        while (st.size() >= 2 and *st.begin() < v) {
          long long v1 = *st.begin();
          st.erase(st.begin());
          long long v2 = *st.begin();
          if (v1 == v2) {
            st.erase(st.find(v2));
            st.insert(v1 + v2);
          }
        }
        if (st.size() > 0 and *st.begin() == v) {
          st.erase(st.begin());
          continue;
        }
        while (st.size() > 0 and *st.begin() > v) {
          long long save = *st.begin();
          st.erase(st.begin());
          st.insert(save / 2);
          st.insert(save / 2);
          ans++;
        }
        if (st.size() > 0 and *st.begin() == v) {
          st.erase(st.begin());
          continue;
        }
      }
    }
    cout << ans << "\n";
  }
}
