#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
const int mo = 1e9 + 7;
long long v[33];
void sol() {
  long long n;
  int m;
  scanf("%lld%d", &n, &m);
  for (auto i = (0); i <= (32); ++i) v[i] = 0;
  for (auto i = (1); i <= (m); ++i) {
    long long x;
    scanf("%lld", &x);
    for (auto j = (0); j <= (32); ++j)
      if (x >> j == 1) {
        ++v[j];
        break;
      }
  }
  long long tot = 0;
  for (auto i = (0); i <= (32); ++i) tot += v[i] << i;
  if (tot < n) {
    printf("-1\n");
    return;
  }
  int ans = 0;
  for (auto i = (0); i <= (32); ++i)
    if ((n >> i) & 1) {
      if (!v[i])
        for (auto j = (i + 1); j <= (32); ++j)
          if (v[j]) {
            for (auto k = (j); k >= (i + 1); --k) {
              --v[k];
              v[k - 1] += 2;
              ++ans;
            }
            break;
          }
      v[i + 1] += (v[i] - 1) / 2;
    } else
      v[i + 1] += v[i] / 2;
  printf("%d\n", ans);
}
int main() {
  int t;
  scanf("%d", &t);
  for (auto i = (1); i <= (t); ++i) sol();
}
