#include <bits/stdc++.h>
using namespace std;

template <typename Arg1>
void prn(bool space, Arg1&& arg1)
{ cout << arg1; if (space) cout << " "; else cout << "\n"; }
template <typename Arg1, typename... Args>
void prn(bool space, Arg1&& arg1, Args&&... args)
{ prn(space, arg1); prn(space, args...); }


#define fastIO          ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0)
#define ll              long long
#define pb              push_back
#define mp              make_pair
#define setbit(x)       __builtin_popcountll(x)
#define init(c,a)       memset(c,a,sizeof(c))
#define all(c)          c.begin(),c.end()
#define debug(x)        cout << #x << " : " << x << endl;
#define ps(x,y)         fixed<<setprecision(y)<<x
#define ff                  first
#define ss                  second
#define mem1(a)           memset(a,-1,sizeof(a))
#define mem0(a)           memset(a,0,sizeof(a))

typedef pair<int, int>	pii;
typedef pair<ll, ll>	pll;
typedef vector<int>		vi;
typedef vector<ll>		vl;
typedef vector<pii>		vpii;
typedef vector<pll>		vpll;
typedef vector<vi>		vvi;
typedef vector<vl>		vvl;


const ll mod = 1000000007;
const ll MOD = 998244353;
const ll inf = 1e18;
const ll MAX = 2e5 + 1;



inline ll add(ll a, ll b) {return ((a % mod) + (b % mod)) % mod;}
inline ll sub(ll a, ll b) {return ((a % mod) - (b % mod) + mod) % mod;}
inline ll mul(ll a, ll b) {return ((a % mod) * (b % mod)) % mod;}

vector<ll> fac(1e6);
ll pwr(ll x, ll n) {
	x = x % mod;
	if (!n) return 1;
	if (n & 1) return mul(x, pwr(mul(x, x), (n - 1) / 2));
	else return pwr(mul(x, x), n / 2);
}

ll modinv(ll n) {
	return pwr(n, mod - 2);
}
// O(logn) for[1,n]
ll inv(ll i) {
	if (i == 1) return 1;
	return (mod - (mod / i) * inv(mod % i) % mod) % mod;
}

ll ncr(ll n, ll r) {
	ll ans = 1;
	if (r != 0 && r != n) {
		ans = fac[n] * modinv(fac[r]) % mod * modinv(fac[n - r]) % mod;
	}
	return ans;
}
void pre() {
	fac[0] = 1;
	for (int i = 1; i < (int) fac.size(); i++) {
		fac[i] = (fac[i - 1] * i) % mod;
	}
}

bool isPowerOfTwo(int x)
{
	/* First x in the below expression is for the case when x is 0 */
	return x && (!(x & (x - 1)));
}


void solve()
{
	int n;
	cin >> n;
	int a[n];
	vector<int> even, odd;
	for (int i = 0; i < n; i++)
	{
		cin >> a[i];
		if (a[i] % 2)
			odd.pb(a[i]);
		else
			even.pb(a[i]);
	}

	for (auto x : even)
		cout << x << " ";
	for (auto x : odd)
		cout << x << " ";
	cout << endl;
}

int main()
{
	fastIO;
#ifndef ONLINE_JUDGE
	freopen("input.txt", "r", stdin);
	freopen("output.txt", "w", stdout);
#endif
	int t = 1;
	cin >> t;
	while (t--)
	{
		solve();
	}

	return 0;
}
