// 백준 1343 폴리오미노
#include <iostream>
#include <string>
using namespace std;
int main()
{
// 입력받을 문자열과 출력할 문자열 변수 생성
string str, result;
int count = 0;
cin >> str;
// 입력받은 문자열의 사이즈만큼 반복
for (int i = 0; i < str.size(); i++)
{
// 문자열의 요소가 X면 count + 1
if (str[i] == 'X') count++;
// 문자열의 요소가 .이면 result 변수에 + '.'
if (str[i] == '.')
{
result += '.';
// 카운트가 홀수면 루프 탈출
if (count % 2 != 0) break;
// 아니면 카운트 초기화
else count = 0;
}
// 카운트가 2이면서 문자열의 다음요소가 X가 아니면
if (count == 2 && str[i + 1] != 'X')
{
// 출력 변수에 + BB, 카운트 초기화
result += "BB";
count = 0;
}
// 카운트가 4면
if (count == 4)
{
// 출력 변수에 + AAAA, 카운트 초기화
result += "AAAA";
count = 0;
}
}
// 카운트가 홀수면(폴리오미노로 다 덮을 수 없으면) -1 출력
if (count % 2 == 1)
cout << -1;
// 아니면 result 출력
else
cout << result;
return 0;
}