#include using namespace std; using ll = long long; using vi = vector; using vb = vector; using vc = vector; using vs = vector; using vll = vector; #define int long long #define f first #define s second #define pb push_back #define all(x) (x).begin(), (x).end() #define rall(x) (x).rbegin(), (x).rend() #define foo(i,a,b) for (int i = (a); i < (b); ++i) #define rfoo(i,a,b) for (int i = (a); i >= (b); --i) #define input(v) for (auto &x : v) cin >> x #define print(v) for (auto x : v) cout << x << " "; cout << '\n' #define yes cout << "YES" << std::endl; #define no cout << "NO" << std::endl; #define nl cout << "\n"; const int MOD = 1e9 + 7; const ll INF = 1e18; ll gcd(ll a, ll b) { return b ? gcd(b, a % b) : a; } ll power(ll a, ll b) { ll res = 1; while (b) { if (b & 1) res *= a; a *= a; b >>= 1; } return res; } ll modexp(ll a, ll b, ll mod = MOD) { ll res = 1; a %= mod; while (b) { if (b & 1) res = (res * a) % mod; a = (a * a) % mod; b >>= 1; } return res; } ll modmul(ll a, ll b, ll mod = MOD) { return ((a % mod) * (b % mod)) % mod; } bool isprime(int n) { if (n < 2) return false; for (int i = 2; i * i <= n; ++i) if (n % i == 0) return false; return true; } void sieve(int n, vector &isPrime) { isPrime.assign(n + 1, true); isPrime[0] = isPrime[1] = false; for (int i = 2; i * i <= n; ++i) if (isPrime[i]) for (int j = i * i; j <= n; j += i) isPrime[j] = false; } int getbit(ll n, int b) { return (n >> b) & 1; } ll setbit(ll n, int b) { return n | (1LL << b); } ll resetbit(ll n, int b) { return n & ~(1LL << b); } ll togglebit(ll n, int b) { return n ^ (1LL << b); } bool ispoftwo(ll n) { return n > 0 && !(n & (n - 1)); } int countSetBits(ll n) { return __builtin_popcountll(n); } int digitCount(ll n, int base = 10) { return n ? (int)(log(n) / log(base)) + 1 : 1; } vi factors(int n) { vi res; for (int i = 1; i * i <= n; i++) { if (n % i == 0) { res.pb(i); if (i != n / i) res.pb(n / i); } } sort(all(res)); return res; } #define lb(v, x) (lower_bound(all(v), x) - (v).begin()) #define ub(v, x) (upper_bound(all(v), x) - (v).begin()) #define count_occ(v, x) (ub(v, x) - lb(v, x)) #define fastio ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr) signed main() { fastio; int t = 1; cin >> t; while (t--) { int n,k; cin>>n>>k; vi v(n); input(v); int mini = INT_MAX; sort(all(v)); v[0] -= k; int p = 1; foo(i,0,n) { p = p*v[i]; } cout << p; // foo(i,0,n) { // int p = 1; // foo(j,0,n) { // if (i == j) { // p = p * (v[j]-k); // } // else { // p = p * v[j]; // } // } // mini = min(p,mini); // } // cout<