P1013

[SCOI2005]超级格雷码

[SCOI2005]超级格雷码

著名的格雷码是由 2n2^n 个不同的 nn 位二进制数组成的排列。这些数对应 00 到 2n−12^n-1,不足 nn 位时在前面补 00。排列中任意两个相邻数的 nn 个数位至多有一个不同。例如,003003 和 001001 只有一个数位不同,而 003003 和 030030 有两个数位不同,不符合要求。

当 n=2n=2 时,序列 (00,01,11,10)(00,01,11,10) 就是一个满足条件的格雷码。

超级格雷码是上述概念在 BB 进制下的推广,即由 BnB^n 个不同的 nn 位 BB 进制数组成的排列,并且任意两个相邻数至多有一个数位不同。

给定 nn 和 BB,请构造一个满足条件的超级格雷码。对于大于 99 的数位,依次使用字母 AA 至 ZZ 表示数值 1010 至 3535。

输入格式

输入仅一行,包含两个整数 nn 和 BB。

输出格式

输出共 BnB^n 行,每行一个 nn 位 BB 进制数,依次表示所构造的超级格雷码。

样例输入

2 2

样例输出

00
10
11
01

数据范围

  • 2≤B≤362\le B\le36;
  • 1≤Bn≤655351\le B^n\le65535。

来源与许可

本题为 SCOI 2005 试题「超级格雷码」,题面与测试数据整理自 BZOJ。

样例 1

输入

2 2

输出

00
10
11
01