#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int n, a, b[30]; int is[1000010]; int ans; bool cmp(int a, int b) { return a > b; } void dfs(int x,int num,int A) { if (x == 0) { ans = min(ans, A); return; } if (num == n) return; dfs(x % b[num + 1], num + 1, A + 1); dfs(x, num + 1, A); } int main() { int t; scanf("%d",&t); while (t--) { scanf("%d %d", &n, &a); for (int i = 1; i <= n; i++) scanf("%d", &b[i]); sort(b + 1, b + 1 + n, cmp); ans = 50; dfs(a, 0, 0); if (ans == 50) ans = -1; printf("%d\n", ans); } return 0; }