#E0038. 按位扩展

按位扩展

题目描述

对于一个整数,对其进行一次 按位扩展 操作,能够让其每一位上的数字都增加 11。也就是说,如果这个十进制整数当前某位上是 dd,则进行一次按位扩展操作后这一位上的数字会变成 d+1d+1;特别地,若这一位上的数字是 99,则进行一次按位扩展后会变成两位数字 1010。比如:

  • 对整数 123123 进行一次按位扩展操作后它将变为 234234
  • 对整数 929929 进行一次按位扩展操作后它将变为 1031010310
  • 对整数 19931993 进行一次按位扩展操作后它将变为 210104210104

现在给你两个整数 nnmm1n109;1m21051 \le n \le 10^9; 1 \le m \le 2 \cdot 10^5)。

求:对十进制整数 nn 进行连续 mm 次按位扩展操作后,nn 有多少位?由于最终的 nn 的位数可能非常大,所以你只需要输出最终 nn 的位数模 109+710^9 + 7 的结果即可。

输入格式

输入包含多组测试数据。

输入的第一行包含一个整数 t(1t2105)t(1 \le t \le 2 \cdot 10^5),表示测试数据组数。

接下来每组测试数据占一行,包含两个整数 nnmm,以一个空格分隔(1n109;1m21051 \le n \le 10^9; 1 \le m \le 2 \cdot 10^5)。

输出格式

对于每组测试数据,输出一行,包含一个整数,表示对整数 nn 进行连续 mm 次按位扩展操作后它对应的十进制整数的位数模 109+710^9 + 7 的结果。

5
1993 1
5 6
999 1
88 2
18 30
6
2
6
4
20

说明/提示

样例解释

  • 第1组测试数据:对 19931993 进行 11 次按位扩展操作后它将变为 210104210104,占 66 位;
  • 第2组测试数据:对 55 进行 66 次按位扩展操作后它将变为 2121,占 22 位;
  • 第3组测试数据:对 999999 进行 11 次按位扩展操作后它将变为 101010101010,占 66 位 ;
  • 第4组测试数据:对 8888 进行 22 次按位扩展操作后它将变为 10101010,占 44 位;
  • 第5组测试数据:对 1818 进行 3030 次按位扩展操作后它将变为 4332322121101091099843323221211010910998,占 2020 位。

数据规模与约定

  • 对于 30%30\% 的数据,t20;n103;m20t \le 20; n \le 10^3; m \le 20
  • 对于 60%60\% 的数据,t2000;n106;m2000t \le 2000; n \le 10^6; m \le 2000
  • 对于 100%100\% 的数据,1t2105;1n109;1m21051 \le t \le 2 \cdot 10^5; 1 \le n \le 10^9; 1 \le m \le 2 \cdot 10^5