#include<stdio.h>
#include<stdlib.h>

typedef struct node{
    int data;
    struct node*next;
}node;
node*createnode(int value){
    node*newnode=(node*)malloc(sizeof(node));
    newnode->data=value;
    newnode->next=NULL;
    return newnode;
}
void append(node**head,int value){
    node*newnode=creatnode(value);
    if(!(*head)){
        *head=newnode;
        newnode->next=*head;
        return;
    }
    node*temp=*head;
    while(temp->next!=*head)
    temp=temp->next;
    temp->next=*head;
}
void printlist(noe*head){
    if(!head)
    return
    node*temp=head;
    do{
        printf("%d",temp->data);
        temp=temp->next;
    }
    while(temp !=head);
    printf(" ");
}
int main(){
    int n,value;
    scanf("%d",&n);
    node*head=NULL;
    for(int i=0;i<n;i++){
        scanf("%d",&value);
        append(&head,value);
    }
    node*even=NULL;
    node*old=NULL;
    node*temp=head;
    if(head){
        do{
            if(temp->data%2==0)
            appand(&even,temp->data);
            temp=temp->next;
            while(temp!=head);
        }
        printlist(even);
        printlist(odd);
    }
}