//Bismillah #include using namespace std; #define int long long int #define f(i, a, n) for (int i = a; i < n; i++) #define fn(i,a,n) for (int i = n - 1; i >= a; i--) #define pr(vec) {for(auto &value: vec) cout<>value; #define pb push_back #define p(a) cout << a << "\n"; #define file_read(filepath) freopen(filepath, "r", stdin); #define file_write(filepath) freopen(filepath, "w", stdout); #define fr first #define se second #define all(a) a.begin(), a.end() #define rall(a) a.rbegin(), a.rend() #define uset unordered_set #define mset unordered_multiset #define vb vector #define vi vector #define vvi vector> #define vc vector #define vs vector #define vpii vector> #define MOD1 1000000007 #define mii map #define sz(a) a.size() #define ld long double #define ins insert int rev(int a, int b) { return a > b; } #define nl cout<<"\n"; #define ned ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int t = 1; int test = 1; const int N = 1e7 + 5; vector is_prime(N, true); void sieve() {is_prime[0] = is_prime[1] = false;for (int i = 2; i * i < N; i++) {if (is_prime[i]) {for (int j = i * i; j < N; j += i) {is_prime[j] = false;}}}} void solve(){ int n,k; cin>>n>>k; vi a(n); iv(a); int mx = *min_element(all(a)); int ans=1; bool cnt=0; f(i,0,n){ if(a[i] == mx && !cnt){ ans *= mx-k; cnt=1; } else{ ans *= a[i]; } } p(ans); } signed main(){ ned; cin>>t; while(t--) { solve(); } return 0; } // 100 100 100