#include <bits/stdc++.h>
using namespace std;
const long long maxn = 5e5 + 7;
const long long mod = 1e9 + 7;
const long long INF = 1e9 + 7;
const long long mlog = 20;
const long long SQ = 400;
long long a[maxn];
int32_t main() {
  ios_base::sync_with_stdio(false), cin.tie(), cout.tie();
  ;
  long long t = 1;
  cin >> t;
  while (t--) {
    long long n, m;
    cin >> n >> m;
    long long sum = 0;
    multiset<long long, greater<long long>> st;
    for (long long i = 0; i < m; i++) cin >> a[i], sum += a[i], st.insert(a[i]);
    long long cnt = 0;
    if (sum < n) {
      cout << -1 << "\n";
      continue;
    }
    while (n > 0) {
      long long v = *st.begin();
      st.erase(st.begin());
      if (v <= n) {
        n -= v;
        sum -= v;
      } else if (sum - v < n) {
        cnt++;
        st.insert(v / 2);
        st.insert(v / 2);
      } else
        sum -= v;
    }
    cout << cnt << "\n";
  }
  return 0;
}
