#include <stdio.h>
#define NMAX 100
#define TRUE 1
#define FALSE 0

void leia_conjunto(int a[]);
void imprima_conjunto(int a[]);
int pertence(int x, int a[]);
void uniao(int u[], int a[], int b[]);

int main()
{
  int a[NMAX], b[NMAX], u[NMAX];

  leia_conjunto(a);
  leia_conjunto(b);

  printf("A:\n");  imprima_conjunto(a);
  printf("B:\n");  imprima_conjunto(b);
  
  uniao(u, a, b);
  printf("Uniao:\n");  imprima_conjunto(u);
  
  return 0;
}

void leia_conjunto(int a[])
{
  int i;
  scanf("%d", &a[0]);
  for (i = 1; i <= a[0]; i++)
    scanf("%d", &a[i]);
}

void imprima_conjunto(int a[])
{
  int i;
  for (i = 1; i <= a[0]; i++)
    printf("%d ", a[i]);
  printf(" (%d elemento(s))\n", a[0]);
}

int pertence(int x, int a[])
{
  int i;
  for (i=1; i<=a[0]; i++)
    if (a[i]==x)
      return TRUE;
  return FALSE;
}

void uniao(int u[], int a[], int b[])
{
  int i, j;

  for (i=1; i<=a[0]; i++) 
    u[i] = a[i];

  for (j=1; j<=b[0]; j++)
    if (!pertence(b[j], a)) {
      u[i] = b[j];
      i++;
    }
  
  u[0] = i-1;
}
