/* Author: Ishan Pandey */
/* All the Gods, All the Heavens, All the Hells are within you. */
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ll long long
#define ull unsigned long long
#define ld long double
#define mp make_pair
#define pb push_back
#define eb emplace_back
#define rep(i,n) for(int i=0;i<n;++i)
#define repa(i,a,b) for(int i=a;i<=b;++i)
#define repd(i,a,b) for(int i=a;i>=b;--i)
#define endl '\n'
#define vvll vector<vector<int> >
#define vll vector<int>
#define mii map<int,int>
#define mll map<int, int>
#define all(sdk) (sdk.begin(),sdk.end())
#define sz(x) (int)x.size()
#define sll set<int>
#define pll pair<int,int>
#define pqbig priority_queue<int>
#define pqsmall priority_queue<int,vi,greater<int> >
#define fi first
#define se second
#define gc getchar()
#define fill(ar,val) memset(ar, val, sizeof(ar))
const long double PI = acos(-1.0);
const int mod = 1000*1000*1000 + 7;
inline int add(int a, int b){ return a+b >= mod ? a+b-mod : a+b;}
inline void inc(int &a, int b){ a = add(a, b);}
inline int sub(int a, int b){ return a-b < 0 ? a-b+mod : a-b;}
inline void dec(int &a, int b){ a = sub(a, b);}
#define fastio ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define prec(x, n) fixed<<setprecision(n)<<x
void start_func()
{
fastio;
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
}
void solve()
{
int n, d;
cin>>n>>d;
int arr[n+10];
rep(i, n)
cin>>arr[i];
sort(arr, arr + n);
rep(i, n)
{
if(arr[i] == d)
{
cout<<"1"<<endl;
return;
}
}
rep(i, n)
{
if(arr[i] >= d)
{
cout << "2" << endl;
return;
}
}
int ans = (d-1) / (arr[n-1]) +1;
cout<< ans <<'\n';
}
signed main()
{
start_func();
int t=1;
cin>>t;
while(t--)
{
solve();
}
return 0;
}
LyogQXV0aG9yOiBJc2hhbiBQYW5kZXkgKi8KLyogQWxsIHRoZSBHb2RzLCBBbGwgdGhlIEhlYXZlbnMsIEFsbCB0aGUgSGVsbHMgYXJlIHdpdGhpbiB5b3UuICovCiAKI2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBpbnQgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcKI2RlZmluZSBsbCAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcKI2RlZmluZSB1bGwgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcKI2RlZmluZSBsZCAgICAgICAgICAgICAgICAgICAgICBsb25nIGRvdWJsZQogCiNkZWZpbmUgbXAgICAgICAgICAgICAgICAgICAgICAgIG1ha2VfcGFpcgojZGVmaW5lIHBiICAgICAgICAgICAgICAgICAgICAgICBwdXNoX2JhY2sKI2RlZmluZSBlYiAgICAgICAgICAgICAgICAgICAgICAgZW1wbGFjZV9iYWNrCiNkZWZpbmUgcmVwKGksbikgICAgICAgICAgICAgICAgIGZvcihpbnQgaT0wO2k8bjsrK2kpCiNkZWZpbmUgcmVwYShpLGEsYikgICAgICAgICAgICAgIGZvcihpbnQgaT1hO2k8PWI7KytpKQojZGVmaW5lIHJlcGQoaSxhLGIpICAgICAgICAgICAgICBmb3IoaW50IGk9YTtpPj1iOy0taSkKIAojZGVmaW5lIGVuZGwgJ1xuJyAKI2RlZmluZSB2dmxsICAgICAgICAgICAgICAgICAgICAgdmVjdG9yPHZlY3RvcjxpbnQ+ID4KI2RlZmluZSB2bGwgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yPGludD4KI2RlZmluZSBtaWkgICAgICAgICAgICAgICAgICAgICAgbWFwPGludCxpbnQ+IAojZGVmaW5lIG1sbCAgICAgICAgICAgICAgICAgICAgICBtYXA8aW50LCBpbnQ+CiAKI2RlZmluZSBhbGwoc2RrKSAgICAgICAgICAgICAgICAgKHNkay5iZWdpbigpLHNkay5lbmQoKSkKI2RlZmluZSBzeih4KSAgICAgICAgICAgICAgICAgICAgKGludCl4LnNpemUoKQogCiNkZWZpbmUgc2xsICAgICAgICAgICAgICAgICAgICAgIHNldDxpbnQ+CiNkZWZpbmUgcGxsICAgICAgICAgICAgICAgICAgICAgIHBhaXI8aW50LGludD4KI2RlZmluZSBwcWJpZyAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHlfcXVldWU8aW50PgojZGVmaW5lIHBxc21hbGwgICAgICAgICAgICAgICAgICBwcmlvcml0eV9xdWV1ZTxpbnQsdmksZ3JlYXRlcjxpbnQ+ID4KIAojZGVmaW5lIGZpICAgICAgICAgICAgICAgICAgICAgICBmaXJzdAojZGVmaW5lIHNlICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmQKI2RlZmluZSBnYyAgICAgICAgICAgICAgICAgICAgICAgZ2V0Y2hhcigpCiNkZWZpbmUgZmlsbChhcix2YWwpICAgICAgICAgICAgIG1lbXNldChhciwgdmFsLCBzaXplb2YoYXIpKQogCmNvbnN0IGxvbmcgZG91YmxlIFBJID0gYWNvcygtMS4wKTsKY29uc3QgaW50IG1vZCA9IDEwMDAqMTAwMCoxMDAwICsgNzsKIAppbmxpbmUgaW50IGFkZChpbnQgYSwgaW50IGIpeyByZXR1cm4gYStiID49IG1vZCA/IGErYi1tb2QgOiBhK2I7fQppbmxpbmUgdm9pZCBpbmMoaW50ICZhLCBpbnQgYil7IGEgPSBhZGQoYSwgYik7fQppbmxpbmUgaW50IHN1YihpbnQgYSwgaW50IGIpeyByZXR1cm4gYS1iIDwgMCA/IGEtYittb2QgOiBhLWI7fQppbmxpbmUgdm9pZCBkZWMoaW50ICZhLCBpbnQgYil7IGEgPSBzdWIoYSwgYik7fQojZGVmaW5lIGZhc3RpbyBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKQojZGVmaW5lIHByZWMoeCwgbikgZml4ZWQ8PHNldHByZWNpc2lvbihuKTw8eAogCnZvaWQgc3RhcnRfZnVuYygpCnsKICAgIGZhc3RpbzsKICAgICNpZm5kZWYgT05MSU5FX0pVREdFCiAgICBmcmVvcGVuKCJpbnB1dC50eHQiLCAiciIsIHN0ZGluKTsKICAgIGZyZW9wZW4oIm91dHB1dC50eHQiLCAidyIsIHN0ZG91dCk7CiAgICAjZW5kaWYKfQogCiAKdm9pZCBzb2x2ZSgpCnsKICAgIGludCBuLCBkOwoJY2luPj5uPj5kOwogICAgaW50IGFycltuKzEwXTsKIAoJcmVwKGksIG4pCiAgICAgICAgIGNpbj4+YXJyW2ldOwogCglzb3J0KGFyciwgYXJyICsgbik7CiAKCXJlcChpLCBuKQogICAgewoJCWlmKGFycltpXSA9PSBkKQogICAgICAgIHsKCQkJY291dDw8IjEiPDxlbmRsOwoJCQlyZXR1cm47CgkJfQoJfQogCiAKICAgICAgICAgICAgICAgIHJlcChpLCBuKQogICAgICAgICAgICAgICAgewogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihhcnJbaV0gPj0gZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdXQgPDwgIjIiIDw8IGVuZGw7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgaW50IGFucyA9IChkLTEpIC8gKGFycltuLTFdKSAgICAgICAgKzE7CiAKIAoJY291dDw8IGFucyA8PCdcbic7CiAgCn0KIApzaWduZWQgbWFpbigpCnsKICAgIHN0YXJ0X2Z1bmMoKTsKICAgIAogICAgaW50IHQ9MTsKICAgIGNpbj4+dDsKICAgIHdoaWxlKHQtLSkKICAgIHsKICAgICAgc29sdmUoKTsKICAgIH0KICAgIAogICAgcmV0dXJuIDA7Cn0=