#include using namespace std; #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define all(x) (x).begin(), (x).end() using ll = long long; const ll MOD = 998244353; int main() { int n,s; cin >> n >> s; vector abc={'A','B','C'}; vector> ans; function)> dp=[&](vector S){ if (S.size() == n) { if (count(all(S), abc.at(0)) && count(all(S), abc.at(1)) && count(all(S), abc.at(2))) { ans.push_back(S); } } else { for (char c : abc) { S.push_back(c); dp(S); S.pop_back(); } } }; dp({}); sort(all(ans)); if (s > ans.size()) { cout << -1 << endl; return 0; } for (auto s : ans.at(s-1)){ cout << s; } cout << endl; }