GDUT = 1
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
Special Judge, 64bit IO Format: %lld

题目描述

塑料在刷短视频的时候看到了以下问题:


\textstyle \overline a+ \overline {aa}+ \overline {a} + \overline {aa} + \overline {a}=100,求 a


看到“二年级”字眼的他很快反应过来这 \textstyle \overline {aa} 并非是 a^2,而是一个个位和十位都是 a 的二位数,例如当 a = 7 时,\overline{aaa} = 777


正在此时传说中的灵感大王跑过来,兴冲冲地把这道题留下来了:


给你一个由 GDUT 和若干 + 号组成的合法式子,问能否将 GDUT 替换为某个 0 \sim 9 的数字可以使得式子等于给定的值。“有的话还要构造一个合法方案哟!


“好好好”,塑料把这个题记录了下来,并相信你可以给出正确的答案。


注意:构造的等式可以有前导 0

输入描述:

本题有多组测试样例。


第一行输入一个正整数 T (\textstyle 1 \leq T \leq 10^5),表示有多组测试样例;


接下来每组测试样例输入一行,包含一个长度为 n (1 \leq n \leq 5 \times 10^5) 的字符串和一个正整数 x (\textstyle 0 \leq x \leq 10^{18}),表示灵感大王留下来的式子和给定的值。


保证单个测试点的所有式子长度之和不超过 10^6

输出描述:

对于每个测试样例,


如果有解,先输出一行YES,然后输出 4 个数字,表示你所构造的结果;


如果无解,你只需要输出一行NO。

你可以以任意大小写输出Yes和No(例如,字符串yEs、yes、Yes和YES将被识别为肯定的回答)。

示例1

输入

复制
3
GDUT 1
GD+UT 98
DDT 123

输出

复制
YES
0 0 0 1
YES
4 4 5 4
NO

备注:

对于第二组样例,5 4 4 4也是一组可行的解,此时 GD + UT = 54 + 44 = 98