#include <bits/stdc++.h>
using namespace std;
const long long int MOD = 1000000007;
const long double pii = 3.141592653589793238;
long long int power(long long int x, long long int y, long long int p) {
  long long int res = 1;
  x = x % p;
  while (y > 0) {
    if (y & 1) res = (res * x) % p;
    y = y >> 1;
    x = (x * x) % p;
  }
  return res;
}
long long int max3(long long int a, long long int b, long long int c) {
  return max(max(a, b), c);
}
long long int min3(long long int a, long long int b, long long int c) {
  return min(min(a, b), c);
}
long long int nCr(long long int n, long long int r) {
  long long int x = n - r, y = 0, z = 1;
  while (y < r) {
    z = (z * (x + 1)) / (y + 1);
    x++;
    y++;
  }
  return z;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long int t, i, n, d;
  cin >> t;
  while (t--) {
    vector<long long int> v;
    cin >> n >> d;
    long long int a[n];
    for (i = 0; i < n; i++) {
      cin >> a[i];
      v.push_back(a[i]);
    }
    sort(v.begin(), v.end());
    long long int h = v[n - 1];
    if (binary_search(v.begin(), v.end(), d))
      cout << 1 << endl;
    else {
      if (d % 2 == 0) {
        if (h >= d / 2)
          cout << 2 << endl;
        else {
          if ((d - 2 * h) % h == 0)
            cout << (d - 2 * h) / h + 2 << endl;
          else
            cout << (d - 2 * h) / h + 2 + 1 << endl;
        }
      } else {
        if (h >= d / 2 + 1)
          cout << 2 << endl;
        else {
          if ((d - 2 * h) % h == 0)
            cout << (d - 2 * h) / h + 2 << endl;
          else
            cout << (d - 2 * h) / h + 2 + 1 << endl;
        }
      }
    }
  }
  return 0;
}
