#include <stdio.h>
#include <stdlib.h>
struct node
{
int data;
struct node *next;
};
int main()
{
int n, i, num1 = 0, num2 = 0;
scanf("%d", &n);
struct node *h, *q, *p, *h1, *q1, *h2, *q2;
h = (struct node *)malloc(sizeof(struct node ));
h -> next = NULL;
q = h;
for(i = 0; i < n; i++)
{
p = (struct node *)malloc(sizeof(struct node ));
p -> next = NULL;
scanf("%d", &p -> data);
q -> next = p;
q = p;
}
h1 = (struct node *)malloc(sizeof(struct node ));
h1 -> next = NULL;
q1 = h1;
h2 = (struct node *)malloc(sizeof(struct node ));
h2 -> next = NULL;
q2 = h2;
q = h;
for(i = 0; i < n; i++)
{
p = q -> next;
q -> next = p -> next;
p -> next = NULL;
if(p -> data % 2 == 0)
{
q1 -> next = p;
q1 = p;
num1++;
}
else
{
q2 -> next = p;
q2 = p;
num2++;
}
}
p = h1 -> next;
printf("%d %d\n%d", num1, num2, p -> data);
p = p -> next;
while(p)
{
printf(" %d", p -> data);
p = p -> next;
}
p = h2 -> next;
printf("\n%d", p -> data);
p = p -> next;
while(p)
{
printf(" %d", p -> data);
p = p -> next;
}
printf("\n");
return 0;
}