4248 - 数字转转转

通过次数

1

提交次数

2

时间限制 : 1 秒
内存限制 : 128 MB

有一个“数字转转转”游戏,规则如下:

给定一个正整数 x,进行一次“数字转转转”操作就是将其每一位数字相加,得到一个新的数。例如:375 经过一次操作变为 3+7+5=15,15 经过一次操作变为 1+5=6。

现在有 T 组测试数据,每组数据给出操作次数 type 和若干个正整数,请计算每个数字经过 type 次“数字转转转”操作后的结果。

注意:由于数字的特性,一个数经过最多两次操作后就会变成一位数(0~9),之后再进行操作结果不变。因此,对于任意 type:

  • 如果 type=0,结果为原数(但题目保证 type≥1);
  • 如果 type=1,只需进行一次数位和计算;
  • 如果 type≥2,最多只需进行两次数位和计算,因为两次后必为一位数,后续操作不会改变结果。

输入

第一行一个整数 T (1 ≤ T ≤ 10³),表示测试组数。

对于每组测试数据:

  1. 第一行一个整数 type (1 ≤ type ≤ 10⁹),表示操作次数;
  2. 第二行一个整数 m (1 ≤ m ≤ 10⁵),表示数字个数;
  3. 第三行 m 个正整数 x (1 ≤ x ≤ 10⁹),表示待处理的数字。

保证所有测试数据的 m 之和不超过 10⁶。

输出

对于每组测试数据,输出一行,包含 m 个整数,表示每个数字经过 type 次操作后的结果,数字之间用一个空格隔开。

样例

输入

3
1
4
123 456 789 999
2
3
10 100 1000
3
2
9876 54321

输出

6 15 24 27
1 1 1
3 6

输入

2
1
3
0 1 9
5
2
999999999 1000000000

输出

0 1 9
9 1

提示

样例 1 解释 第一组:type=1,每个数进行一次操作。

  • 123 → 1+2+3=6
  • 456 → 4+5+6=15
  • 789 → 7+8+9=24
  • 999 → 9+9+9=27

第二组:type=2,每个数进行两次操作。

  • 10 → 1+0=1 → 1(第二次操作时,1 已经是一位数,所以结果不变)
  • 100 → 1+0+0=1 → 1
  • 1000 → 1+0+0+0=1 → 1

第三组:type=3,每个数进行三次操作,但两次后已稳定。

  • 9876 → 9+8+7+6=30 → 3+0=3 → 3(第三次操作时,3 已是一位数,结果不变)
  • 54321 → 5+4+3+2+1=15 → 1+5=6 → 6