N, K = map(int, input().split()) moji = 3 lastk = 1 k = 1 d = 2 a = 1 b = 1 while (k < K): lastk = k temp = a + b a = b b = temp k = k * 2 + d d += b moji += 1 MMA__s = 2 ** (moji-3) MA___s = k - MMA__s - MMA__s + 1 - lastk def main(): print(moji, lastk, lastk + MA___s, lastk + MA___s + MMA__s, k) if lastk + MA___s >= K: # はじめの MA___ の中 cnt = lastk start = 2 ** (moji-1) elif lastk + MA___s + MMA__s >= K: # 中盤の MMA__ の中 return 'M' * (N-moji) + 'MMA' + bin(K-lastk-MA___s-1)[2:].zfill(moji-3).replace('0', 'A').replace('1', 'M') else: # 終盤の MMM__ の中 cnt = lastk + MA___s + MMA__s start = 7 * 2 ** (moji-3) for i in range(start, 2**N): S = bin(i)[2:].zfill(N).replace('0', 'A').replace('1', 'M') if S.find('MMA') != -1: cnt += 1 if cnt == K: return S print(main())