#define _GLIBCXX_DEBUG #include <bits/stdc++.h> #include <atcoder/dsu> #include <atcoder/segtree> using namespace atcoder; using namespace std; typedef long long ll; typedef pair<ll,ll> pi; #define ALL(x) x.begin(),x.end() #define rep(i,a,b) for(int i=a;i<b;i++) #define BS(A,x) binary_search(ALL(A),x) #define LB(A,x) (ll)(lower_bound(ALL(A),x)-A.begin()) #define UB(A,x) (ll)(upper_bound(ALL(A),x)-A.begin()) #define COU(A,x) (UB(A,x)-LB(A,x)) using vi = vector<int>; using vvi = vector<vi>; using li =vector<ll>; using lli=vector<li>; using si =vector<char>; using ssi =vector<si>; const long long INF = 1e18; const long long MOD=1e9+7; //for (auto [key, val] : mp) string ans; void dfs(string S,ll N){ if(N==1){ans=S;return;} N--; if(N%2==0) dfs("A"+S,N/2); if(N%3==0) dfs("B"+S,N/3); } int main() { ll n;cin>>n; dfs("",n); cout<<ans; }