#P9888. [ICPC 2018 Qingdao R] Magic Multiplication

[ICPC 2018 Qingdao R] Magic Multiplication

Description

BaoBao 现在正在他的魔法书中学习两个正整数之间的一种新的二元运算,用 \otimes 表示。这本书告诉他,这种运算的结果是通过将两个整数中每个数字的所有多个结果串联起来计算的。

形式上讲,让第一个整数为 A=a1a2anA=a_1a_2\dots a_n,其中 aia_i 表示 AA 中的第 ii 位,第二个整数为 B=b1b2bmB=b_1b_2\dots b_m,其中 bib_i 表示 BB 中的第一位。我们有

$$A \otimes B = \sum\limits_{i=1}^n\sum\limits_{j=1}^m a_ib_j = a_1b_1 + a_1b_2 + \dots + a_1b_m + a_2b_1 + \dots + a_nb_m$$

请注意,aibja_ib_j 的结果被认为是 string\textbf{string}(也就是直接算出结果然后把它当作字符串),而不是正常整数。此外,这里的 sum 表示 string concatenation\textbf{string concatenation}(也就是字符串拼接),而不是正常的加法运算。

例如,2345=810121523\otimes 45=8101215。因为 8=2×48=2\times 410=2×510=2\times 512=3×412=3\times 415=3×515=3\times 5

BaoBao 很聪明,很快就想出了 \otimes 的逆运算。现在,他给出了 \otimes 运算的结果以及两个原始整数中的位数。请帮助他恢复两个原始整数 AABB

Input Format

有多个测试用例。输入的第一行包含一个整数 TT,表示测试用例的数量。对于每个测试用例:

第一行包含两个正整数 nnmm1n,m2×1051\le n,m\le 2\times 10^5),其中 nn 表示 AA 的长度,mm 表示 BB 的长度。这里,整数的长度是指在不带前导零的十进制记数法中写入数字时字符串的长度。

第二行只包含一个不带前导零的正整数 CC,表示 ABA\otimes B 的结果。CC 的长度不超过 2×1052\times 10^5

保证所有测试用例的 CC 长度总和不会超过 2×1062\times 10^6

Output Format

对于每个测试用例输出一行。

如果存在这样的 AABBAB=CA\otimes B=C,则输出一行,其中包含由一个空格分隔的两个整数 AABB。请注意,AABB 应该是不带前导零的正整数,AA 的长度应该正好是 nnBB 的长度应正好是 mm

如果存在多个有效答案,则输出具有最小 AA 的答案;如果仍然有一个以上的答案,请输出其中一个最小的 BB

如果不存在这样的 AABB,请在单行上打印 Impossible(不带引号)。

4
2 2
8101215
3 4
100000001000
2 2
80101215
3 4
1000000010000
23 45
101 1000
Impossible
Impossible