/**
 *    author:  Ujjwal Tripathi
 *    created: 15.04.2021 18:04:04
**/
 
    
#include<bits/stdc++.h>
using namespace std;
 
#define ar array<ll, 2>
#define ll long long
#define in insert
#define pb push_back
#define pii pair<ll,ll>
#define vt vector
#define P_Q(x) priority_queue<x>
#define p_q(x) priority_queue<x, vector<x>, greater<x>>
#define For(i, n) for(ll i = 0; i < n; i++)
#define Rev(i, n) for(ll i = n-1; i >= 0; i--)
#define FOR(i, n) for(ll i = 1; i <= n; i++)
#define REV(i, n) for(ll i = n; i >= 1; i--)
#define Rep(i,a,b) for(ll i = a; i <= b; i++)
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define sz(x) (int) (x).size()
 
// Maximum priority queue
template <typename T>
using mxpq = priority_queue<T>;
 
// Minimum priority queue
template <typename T>
using mnpq = priority_queue<T, vt<T>, greater<T>>;
 
 
// x | (x + 1) sets lowest unset bit of x
// x & (x - 1) unsets lowest set bit of x
 
const ll mod = 1e9L + 7;
const ll INF = 1e18L + 5;
const ll mxN = 2e5 + 1;
 
 
ll n;
ll dp[1000004];
// remember to read no of test_cases
void solve()
{
   cin>>n;
   vt<ll> v(n);
   For(i,n)
   {
    cin>>v[i];
    if(v[i]%2==0)
    {
        cout<<v[i]<<" ";
    }
   }
 
    For(i,n)
    {
      if(v[i]%2==1)
      {
        cout<<v[i]<<" ";
      }
    }
    cout<<endl;
}
 
int main()
{
  ios::sync_with_stdio(0);  cin.tie(0);
  ll t = 1;
  cin >> t;
  FOR(tt, t) solve();
  return 0;
}
 