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
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define rep(a, b) for(int a = 0; a < (b); ++a)
#define st first
#define nd second
#define pb push_back
#define all(a) a.begin(), a.end()
string ans, S;
void dodaj(string s, ll k) {
  if(k==0) return;
  if(k==1) {
    ans+=s;
    return;
  }
  if(k<9) {
    ans+=char(k+'0');
    ans+="["+s+"]";
    return;
  }
  ans+="9[";
  dodaj(s, k/9);
  ans+="]";
  k%=9;
  if(k==0) return;
  if(k==1) ans+=s;
  else {
    ans+=char(k+'0');
    ans+="["+s+"]";
  }
}
void dodaj2(string s, ll k) {
  if(k==0) return;
  if(k==1) {
    S+=s;
    return;
  }
  if(k<9) {
    S+=char(k+'0');
    S+="["+s+"]";
    return;
  }
  S+="9[";
  dodaj2(s, k/9);
  S+="]";
  k%=9;
  if(k==0) return;
  if(k==1) S+=s;
  else {
    S+=char(k+'0');
    S+="["+s+"]";
  }
}
void dodaj3(ll n) {
  if(n==0) return;
  if(n==1) {
    ans+=S;
    return;
  }
  for(ll i=9; i>1; --i) if(n%i==0) {
    ans+=char(i+'0');
    ans+="[";
    dodaj3(n/i);
    ans+="]";
    return;
  }
  ans+="9[";
  dodaj3(n/9);
  ans+="]";
  n%=9;
  if(n==0) return;
  if(n==1) ans+=S;
  else {
    ans+=char(n+'0');
    ans+="["+S+"]";
  }
}
void romb(ll n) {
  S="";
  dodaj2("FD", n-1);
  S+="F";
  dodaj2("B", n);
  dodaj3(n);
}
void rysuj(ll n) {
  if(n==4) ans+="CCCCAEAEAEACCCAEAEACCAEACAEEEE";
  if(n==3) ans+="CCCAEAEACCAEACAEEE";
  if(n==2) ans+="CCAEACAEE";
  if(n==1) ans+="CAE";
  if(n<=4) return;
  if(n%2==0) ans+="C";
  ll p=n-3;
  if(p%2==1) --p;
  ans+="CB2[";
  rysuj(p/2);
  dodaj("DB", p/2);
  ans+="]DBF";
  dodaj("BF", p/2);
  romb(p/2);
  dodaj("D", p/2);
  dodaj("BF", p/2);
  ans+="BFD";
  dodaj("FD", p);
  ans+="FD";
  dodaj("C", p+2);
  dodaj("A", p+3);
  dodaj("E", p+3);
  if(n%2==0) {
    dodaj("AC", n-1);
    ans+="A";
    dodaj("E", n);
  }
}
int main() {
  ios_base::sync_with_stdio(0); cin.tie(0);
  ll n;
  cin >> n;
  rysuj(n);
  cout << ans << '\n';
}