#6413. 数码显示

数码显示

题目描述

在计算机中,数字以二进制的形式存储。而在实际生活中,为了阅读的方便,人们经常需要让数字用别的形式显示出来,例如数码管。 具体来说,一个数码管由 77 个灯管构成,可以表示一位十进制数。

image

现在,给定一个数字 nn 和你拥有的数码管个数 mm,你需要判断能否用这些数码管显示出数字 nn。如果可以,输出显示的方案。如果不可以,输出你需要补充多少个数码管。

输入格式

一行两个整数 n,m.n, m.

输出格式

第一行一个字符串,如果可以,输出 "Yes",否则输出 "No".(不包含引号)

如果可以,则接下来输出 mm 行,每行 77 个用空格隔开的数字 "0" 或 "1"。第 ii 行的第 jj 个数字如果为 11,表示第 ii 个数码管的第 jj 个灯管亮起,为 00 则表示不亮。如果数字只有 kk 位,那么前面的 (mk)(m-k) 个数码管应该完全不亮。

注意:如果 n=0n=0,则还是应该亮起一位。

如果不可以,输出一行一个数字,表示需要补充的数码管数量。

样例

69 3
Yes
0 0 0 0 0 0 0
1 0 1 1 1 1 1
1 1 1 1 0 1 1
998244353 6
No
3

数据规模与约定

对于 10%10\% 的数据,满足 n=0n=0.

对于 50%50\% 的数据,满足 0n1000,0m90 \le n \le 1000, 0 \le m \le 9.

对于 75%75\% 的数据,满足 0n26310 \le n \le 2^{63} -1.

对于 80%80\% 的数据,满足0n26410 \le n \le 2^{64} -1.

对于 100%100\% 的数据,满足0n101000,0m10000 \le n \le 10^{1000} , 0 \le m \le 1000.