#include <vector>
#include <iostream>

using namespace std;

bool check(const vector<char>& s)
{
    int e = -1, b = -1;
    for(int i = 0; i < 4; ++i)
    {
        if (s[i] == 'E' && e < 0) e = i;
        if (s[i] == 'B') b = i;
    }
    if (b>= 0 && e >= 0 && b > e) return false;
    return true;
}

int main(int argc, char * argv[])
{
    vector<char> s = {'A','A','A','A'};
    int total = 0, ok = 0;
    for(;;)
    {
        total++;
        if (check(s)) ok++;

        cout << s[3] << s[2] << s[1] << s[0]
            << (!check(s) ? " !!!!\n" : "\n");

        for(int carry = 1, i = 0; carry && i < 4; ++i)
        {
            s[i] += carry;
            if (s[i] > 'E') { s[i] = 'A'; carry = 1; } else carry = 0;
        }
        if (s == vector<char>(4,'A')) break;
    };
    cout << "Total: " << total << ", right: " << ok << endl;
}
