// 7-1
#include <iostream>
#include <algorithm>
#include <queue>
#include <vector>
using namespace std;
int n;
queue<int>qa;
queue<int>qb;
vector<int>v;
int main()
{
cin >> n;
int x;
for(int i = 0;i < n;i ++){
cin >> x;
if(x & 1){
qa.push(x);
}else{
qb.push(x);
}
}
while(qa.size() || qb.size()){
if(qa.size()){
v.push_back(qa.front());
qa.pop();
}
if(qa.size()){
v.push_back(qa.front());
qa.pop();
}
if(qb.size()){
v.push_back(qb.front());
qb.pop();
}
}
bool tf = false;
for(auto &x : v){
if(tf){
cout << ' ';
}
tf = true;
cout << x;
}
return 0;
}
// 7-2
#include <iostream>
#include <set>
#include <algorithm>
using namespace std;
int n,m;
int main()
{
cin >> n >> m;
while(n --)
{
string str;
cin >> str;
int f = 0;
bool tf = true;
for(int i = 0;i < str.size();i ++)
{
if(str[i] == 'S'){
f ++;
}else{
f --;
}
if(f < 0 || f > m){
tf = false;
}
}
if(tf && f == 0)
cout << "YES" << endl;
else
cout << "NO" << endl;
}
return 0;
}