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

#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define int long long
#define line cout<<"[At "<<__LINE__<<"]"<<endl;
#define size(x) ((int)x.size())
#define index(v, a, b) v.begin() + a, v.begin() + b 
#define memo(x,y) memset((x),(y),sizeof((x)))
#define bits(x) __builtin_popcount(x)
#define toBinaryString(x) bitset<32> (x).to_string()

namespace Debug{
  void __print(signed x){cout << x;}
  void __print(long x){cout << x;}
  void __print(long long x){cout << x;}
  void __print(unsigned x){cout << x;}
  void __print(unsigned long x){cout << x;}
  void __print(unsigned long long x){cout << x;}
  void __print(float x){cout << x;}
  void __print(double x){cout << x;}
  void __print(long double x){cout << x;}
  void __print(char x){cout << '\'' << x << '\'';}
  void __print(const char *x){cout << '\"' << x << '\"';}
  void __print(const string &x){cout << '\"' << x << '\"';}
  void __print(bool x){cout << (x ? "true" : "false");}
  template<typename T, typename V> void __print(const pair<T, V> &x){cout << '{';__print(x.first);cout << ',';__print(x.second);cout << '}';}
  template<typename T> void __print(const T &x){int f = 0;cout << '{';for (auto &i : x) cout << (f++ ? "," : ""), __print(i);cout << "}";}
  void _print(){cout << "]"<<endl;}
  template <typename T, typename... V> void _print(T t, V... v){__print(t);if (sizeof...(v)) cout << ", ";_print(v...);}
  
  #define debug(x...) if(DEBUG) { cout <<"Line:"<<__LINE__<< " [" << #x << "] = ["; _print(x); }
  #define deb(x...) if(DEBUG) { cout <<"[" << #x << "] = ["; _print(x); }
}using namespace Debug;


const bool DEBUG = true;


void process(){
	int n;
	cin >> n;
	vector<int> odd, even;
	for(int i = 1; i <= n; i++){
		int x;
		cin >> x;
		if(x & 1)
			odd.push_back(x);
		else
			even.push_back(x);
	}
	for(int i : odd)
		cout << i << " ";

	for(int i : even)
		cout << i << " ";
	cout << "\n";
}

signed main() {
	IOS;
	int t = 1;
	cin >> t;
	for(int i = 1; i <= t; i++){
		process();
	}
	return 0;
}