Home_W定义一个数的表示方法为x(n) = (a1,a2,a3,a4.,..an),ai(1<=i<=n)是一个三位数(可能包含前导0,比如001)
x(n)是一个3*n位的数,x = a1a2a3..an,例如123456(2) = (123,456)。
Home_W自定义一个位数相同的两个数的乘法运算为:
x(n)*y(n) = (a1*b1%1000,a2*b2%1000,a3*b3%1000,....,an*bn%1000) = z(n)
例如123456(2)*456123(2) = (123*456%1000,456*123%1000) = (088,088) = 088088;
现在Home_W想用这个规则考一考Hang,Home_W给了Hang一个3*n位数的数z,要求Hang求出两个3*n位数的数x,y使得它们用上面定义的乘法乘积等于z。
聪明的Hang一下子就解出了x和y,于是他在当晚就把答案写在了纸上,等他醒来时发现x和y的某些ai,bj(1<=i,j<=n)的数已模糊不清(估计是Home_W干的)(如果某个ai或者bj模糊不清,那么代表其三位数都模糊不清)。
此时Home_W正好赶来问结果,但Hang一时想不起来那些模糊的数了,此时他想找你帮他回忆那些数,你可以帮帮Hang吗?
与此同时Home_W为了继续刁难Hang他要求可行的x尽量小,也就是你必须解出一个最小的x使得有对应的y与它相乘等于z。(若你得到的不是最小的x,Home_W会认定他是错的)
同样在得到最小的x时,y也必须是答案中最小的一个,否则也认为是错误的。 (注意x,y,z可能有前导0)
第一行包含一个t表示样例个数。
接下来t行每行一个整数n表示数的位数为3*n(1<=n<=1e6)。
每行n都接着三行3*n位数的数,第一行表示z,第二行表示x,第三行表示y(x和y中*号部分表示模糊不清的数)。
保证所有样例∑n<=1e6
每个样例输出两行3*n位数,第一行表示将模糊地方填补完的x,第二行表示将模糊地方填补完的y(若有前导0则一起输出)。
3 2 088088 123*** ***456 2 784784 456*** 789*** 2 784784 456*** ***789
123123 456456 456001 789784 456456 039789