/*
* @author:- MAHMUDUL HASAN SAKIB
* DATE:-11/07/2024 ; TIME-2024-07-11 20:19:52 PM
* BANGLADESH , SYLHET.
*/
#include <algorithm>
#include <array>
#include <bitset>
#include <cassert>
#include <chrono>
#include <cmath>
#include <cstdint>
#include <cstring>
#include <functional>
#include <iomanip>
#include <iostream>
#include <map>
#include <numeric>
#include <queue>
#include <random>
#include <set>
#include <vector>
using namespace std;
#define fi first
#define se second
#define endl '\n'
#define ll long long
#define ld long double
#define pb push_back
#define mp make_pair
#define vi vector<ll>
#define maxn 500005
#define mod 1000000007
#define inf 1000000007
#define pii pair<ll,ll>
#define vii vector<pii>
#define sz(x) (int)x.size()
#define all(x) x.begin(), x.end()
#define lcm(a,b) ((a*b)/__gcd(a,b))
#define srt(v) sort(v.begin(),v.end())
#define rsrt(v) sort(v.rbegin(),v.rend())
#define rep(i, a, b) for(int i = (a); i < (b); i++)
#define per(i, a, b) for(int i = (a); i > (b); i--)
#define rev_str(str) reverse(str.begin(),str.end())
#define print(v) for(auto e:v) cout<<e<<" "; cout<<endl;
#define printp(v) for(auto e:v) cout<<e.first<<" "<<e.second<<endl;
#define fast ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
void solve() {
ll n;
cin >> n;
std::vector<bool> isPrime(21000 + 1, false);
vi primes,results;
isPrime[0] = isPrime[1] = true;
for (ll i = 2; i <= 21000; i++) {
if (!isPrime[i]) {
primes.pb(i);
for (ll j = i * i; j <= 21000; j += i) {
isPrime[j] = true;
}
}
}
//print(primes);
//if (primes.empty()) return;
/*rep(i, 0, n) {
ll prime1 = primes[i % sz(primes)];
ll prime2 = primes[(i + 1) % sz(primes)];
results.push_back(prime1 * prime2);
}*/
rep(i,0,n){
results.pb(primes[i]*primes[i+1]);
if(sz(results)==n){
break;
}
else{
results.pb(primes[i]*primes[i+2]);
}
}
srt(results);
print(results);
}
int main() {
auto begin = std::chrono::high_resolution_clock::now();
fast
ll t;
cin >> t;
while(t--) {
solve();
}
auto end = std::chrono::high_resolution_clock::now();
auto elapsed = std::chrono::duration_cast<std::chrono::nanoseconds>(end - begin);
cerr << "Time measured: " << elapsed.count() * 1e-9 << " seconds.\n";
return 0;
}