#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int main() {
int n, num;
bool firstarr = true;
while (scanf("%d", &n) != EOF) {
int *arr1 = (int*)malloc(n * sizeof(int));
int *arr2 = (int*)malloc(n * sizeof(int));
bool first = true;
int len1 = 0, len2 = 0;
for (int i = 0; i < n; i++) {
scanf("%d", &num);
if (num % 2 == 1) {
arr1[len1++] = num;
} else {
arr2[len2++] = num;
}
}
for(int i = 0;i < len1 - 1;i++){
for(int j = 0;j < len1 - i - 1;j++){
if(arr1[j] > arr1[j+1]){
int temp = arr1[j];
arr1[j] = arr1[j+1];
arr1[j+1] = temp;
}
}
}
for(int i = 0;i < len2 - 1;i++){
for(int j = 0;j < len2 - i - 1;j++){
if(arr2[j] > arr2[j+1]){
int temp = arr2[j];
arr2[j] = arr2[j+1];
arr2[j+1] = temp;
}
}
}
if(!firstarr) printf("\n");
for(int i = 0;i < len1;i++){
if(first) printf("%d",arr1[i]);
else printf(" %d",arr1[i]);
first = false;
}
for(int i = 0;i < len2;i++){
if(first) printf("%d",arr2[i]);
else printf(" %d",arr2[i]);
first = false;
}
firstarr = false;
free(arr1);
free(arr2);
}
return 0;
}
#include <stdbool.h>
#include <stdlib.h>
int main() {
int n, num;
bool firstarr = true;
while (scanf("%d", &n) != EOF) {
int *arr1 = (int*)malloc(n * sizeof(int));
int *arr2 = (int*)malloc(n * sizeof(int));
bool first = true;
int len1 = 0, len2 = 0;
for (int i = 0; i < n; i++) {
scanf("%d", &num);
if (num % 2 == 1) {
arr1[len1++] = num;
} else {
arr2[len2++] = num;
}
}
for(int i = 0;i < len1 - 1;i++){
for(int j = 0;j < len1 - i - 1;j++){
if(arr1[j] > arr1[j+1]){
int temp = arr1[j];
arr1[j] = arr1[j+1];
arr1[j+1] = temp;
}
}
}
for(int i = 0;i < len2 - 1;i++){
for(int j = 0;j < len2 - i - 1;j++){
if(arr2[j] > arr2[j+1]){
int temp = arr2[j];
arr2[j] = arr2[j+1];
arr2[j+1] = temp;
}
}
}
if(!firstarr) printf("\n");
for(int i = 0;i < len1;i++){
if(first) printf("%d",arr1[i]);
else printf(" %d",arr1[i]);
first = false;
}
for(int i = 0;i < len2;i++){
if(first) printf("%d",arr2[i]);
else printf(" %d",arr2[i]);
first = false;
}
firstarr = false;
free(arr1);
free(arr2);
}
return 0;
}