#include <stdio.h>
int main()
{
// 부모의 혈액형 인자 정보 저장 배열
char m[5], f[5];
scanf("%s %s", &m, &f);
// A형이 한 번만 출력되도록 하는 변수
int countA = 0;
// AB형이 한 번만 출력되도록 하는 변수
int countB = 0;
// B형이 한 번만 출력되도록 하는 변수
int countAB = 0;
// O형이 한 번만 출력되도록 하는 변수
int countO = 0;
// A형을 채크한다.
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 2; j++)
{
// 만약 A형의 조건을 충족시킨다면
// A를 출력하고 다음에 안 나오게 하기 위해 countA에 1 더해준다.
if ((m[i] == 'A' && f[j] == 'O' && countA == 0) ||
(m[i] == 'A' && f[j] == 'A' && countA == 0) ||
(m[i] == 'O' && f[j] == 'A' && countA == 0))
{
printf("A ");
countA++;
}
}
}
// AB형을 채크한다.
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 2; j++)
{
// 만약 AB형의 조건을 충족시킨다면
// AB를 출력하고 다음에 안 나오게 하기 위해 countAB에 1 더해준다.
if ((m[i] == 'A' && f[j] == 'B' && countAB == 0) ||
(m[i] == 'B' && f[j] == 'A' && countAB == 0))
{
printf("AB ");
countAB++;
}
}
}
// B형을 채크한다.
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 2; j++)
{
// 만약 B형의 조건을 충족시킨다면
// B를 출력하고 다음에 안 나오게 하기 위해 countB에 1 더해준다.
if ((m[i] == 'B' && f[j] == 'O' && countB == 0) ||
(m[i] == 'B' && f[j] == 'B' && countB == 0) ||
(m[i] == 'O' && f[j] == 'B' && countB == 0))
{
printf("B ");
countB++;
}
}
}
// O형을 채크한다.
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 2; j++)
{
// 만약 O형의 조건을 충족시킨다면
// O를 출력하고 다음에 안 나오게 하기 위해 countO에 1 더해준다.
if (m[i] == 'O' && f[j] == 'O' && countO == 0)
{
printf("O ");
countO++;
}
}
}
}