n = read_line.to_i s = read_line.to_i s -= 1 ans = Array.new(n, -1) n.times do |i| ok = false 3.times do |j| ans[i] = j used = Array.new(3) { |k| ans.includes?(k) } c = count(n - 1 - i, used) if c > s ok = true break else s -= c end end if !ok puts -1 exit end end puts ans.map { |i| 'A' + i }.join def count(len, used) return 0 if used.count(false) > len ret = 3 ** len 3.times do |i| if !used[i] ret -= 2 ** len end if !used[i] && !used[i - 1] ret += 1 end end ret end