#include
using namespace std;
class node{
public:
int data;
node* next;
node(int key){
data = key;
next= NULL;
}
};
void input(node*&head , int key){
if(head == NULL){
head = new node(key);
}
else{
node * emp = head;
while(emp -> next != NULL){
emp = emp ->next;
}
node * temp = new node(key);
emp->next = temp;
}
}
void print (node * head){
while(head!=NULL){
cout<<head ->data<<" ";
head = head->next;
}
}
node* next_odd(node *current){
while(current!=NULL){
if((current->data %2) != 0){
return current;
}
current = current->next;
}
return current;
}
void even_after_odd(nodehead){
nodefirst = head;
node* second = head;
while(second!=NULL){
if((first->data%2) == 0 ){
second = next_odd(second);
}
if(second!= NULL)
{swap(first->data,second->data);
second = second->next;}
first = first->next;
}
return;
}
int main() {
node* head = NULL;
int len;
cin>>len;
for(int i=0;i<len;i++){
int key;
cin>>key;
input(head,key);
}
even_after_odd(head);
print(head);
return 0;
}