#include <iostream>
using namespace std;
int n = 0;
void swap(char *a, char *b)
{
    int m;
    m = *a;
    *a = *b;
    *b = m;
}
void pailie(string str, int k, int m)
{
    int i;
    if (k > m)
    {
        int a = str.find('A');
        int b = str.find_last_of('A');
        int c = str.find('2');
        int d = str.find_last_of('2');
        int e = str.find('3');
        int f = str.find_last_of('3');
        int g = str.find('4');
        int l = str.find_last_of('4');
        if (b - a == 2 && d - c == 3 && f - e == 4 && l - g == 5)
        {
            cout << str << endl;
        }
    }
    else
    {
        for (i = k; i <= m; i++)
        {
            swap(&str[k], &str[i]);
            pailie(str, k + 1, m);
            swap(&str[k], &str[i]);
        }
    }
}
int main()
{
    string str = "AA223344";
    pailie(str, 0, 7);
    return 0;
}