129 - Krypton Factor

在一個字串中如果相同的兩個子字串相鄰地靠在一起,我們稱該字串為”easy”,否則稱為”hard”。
下例為easy字串:

  • BB
  • ABCDACABCAB
  • ABCDABCD

下例為hard字串:

  • D
  • DC
  • ABDAB
  • CBABCBA

Input and Output

輸入會有多組測試資料,每組資料一列會有兩個整數 n, L,其中 n > 0 且 1 <= L <= 26,請你輸出以字典順序排列的第 n 個hard字串(只能利用前L個字母),並接著顯示該字串的長度。第一個字串一定是A。你可以假定所給定的 n 與 L 必存在第 n 個hard字串。
例如當L=3, 前7個hard字串依序分別為:

A
AB
ABA
ABAC
ABACA
ABACAB
ABACABA

請在每組輸出字串之間,以四個字元為一組並以一個空白字元隔開,且每16組一列,第17組之前請輸出一換行字元,因此上例中 n = 7, L = 3其輸出為:

ABAC ABA

7

當 n = 0, L = 0表示測試資料結束。你可以假定最長的輸出字串不會超過80個字元。

Sample Input

30 3
0 0

Sample Output

ABAC ABCA CBAB CABA CABC ACBA CABA
28