1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include <bits/stdc++.h>
using namespace std;
typedef pair<int,int> PII;

string convert_base9(const string & s, long long n){
    string res;
    int cnt = 0;
    while(n>0){
        int r = n%9;
        if(r>1){
            res.append(to_string(r));
            if(s.size() > 1) res.append("[");
            res.append(s);
            if(s.size() > 1) res.append("]");
        }
        else if(r == 1){
            res.append(s);
        }
        n /= 9;
        if(n>0){
            res.append("9[");
            cnt++;
        }
    }
    while(cnt--) res.append("]");
    return res;
}


string convert(const string & s, long long n){
    return convert_base9(s, n);
}

string brutbrut(long long n){
    string res;
    for(int level=n-1;level>=0;level--){
        res.append(convert("AE", level));
        res.append("A");
        res.append(convert("C", level));
    }
    return res;
}


string ans;

void solve(long long n){
    if(n <= 2) ans += brutbrut(n);
    else if(n%2){
        ans += "AE";
        solve(n-1);
        ans += convert("CE", n-2);
        ans += "C";
        ans += convert("A", n-1);
    }
    else{
        long long m = n/2-1;
        ans += convert("AE", m);
        ans += "A";
        ans += convert("C", m);
        ans += "2[";
        solve(m);
        ans += "]";
        ans += convert("E", m);
        ans += convert("C", m);
        string row;
        row += convert("E", m+1);
        row += convert("AC", m);
        row += "A";
        ans += convert(row, m+1);
        ans += convert("CA", m+1);
    }
}


int main(){
    ios_base::sync_with_stdio(0);
    long long n;
    cin>>n;
    solve(n);
    ans += convert("E", n);
    ans += convert("C", n);
    cout<<ans<<endl;
    //cerr<<ans.size()<<endl;
}