废物了半个月,不能继续对不起自己了,太菜了,入群题都不会,闭关修炼吧。
simple format
题目名字,简单的格式化,看名字好像是pwn题,IDA看看。
直接看关键处吧。真让人头大,又有新知识可以学了,直接找writeup。
经过参考,弄懂了这一串字符的意思。
%s 决定类型, * 决定宽度, $ 决定第几个参数。
所以 %1$*2$s 就是第一个参数以长度为第二个参数输出,然后发现有x个 %1$*2$s,也就是长度为 x * (第二个参数的值)
其余类似。最后有个%20$n,意思是把输出的字符串的长度放入第二十个参数里。
有18个dprintf,我们输入的字符串的长度是36个,变成word型就是18个。
然后得出是求18个未知数。
写了python脚本,发现线性方程组原来这么容易解。。。。
s = ["%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*14$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*16$s%1$*16$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%20$n",
"%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*6$s%1$*6$s%1$*6$s%1$*7$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*19$s%20$n",
"%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%20$n",
"%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*4$s%1$*4$s%1$*4$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*10$s%1$*10$s%1$*10$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*17$s%1$*17$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%20$n",
"%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*3$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%20$n",
"%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*12$s%1$*13$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%20$n",
"%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*11$s%1$*11$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*19$s%20$n",
"%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%20$n",
"%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*17$s%1$*17$s%1$*18$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%20$n",
"%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*12$s%1$*12$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%20$n",
"%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*15$s%1$*15$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%20$n",
"%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*4$s%1$*4$s%1$*4$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*8$s%1$*8$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%20$n",
"%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*9$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%20$n",
"%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%20$n",
"%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*9$s%1$*9$s%1$*9$s%1$*10$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*13$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%20$n",
"%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%20$n",
"%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*5$s%1$*6$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*10$s%1$*10$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*14$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%20$n",
"%1$*2$s%1$*2$s%1$*2$s%1$*2$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*3$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*4$s%1$*5$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*6$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*7$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*8$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*9$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*10$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*11$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*12$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*13$s%1$*14$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*15$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*16$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*17$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*18$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%1$*19$s%20$n"]
d = [[0] * 18 for i in range(len(s))]
for j in range(len(s)):
for i in range(2, 20):
str1 = "%1$*{}$s".format(str(i))
d[j][i - 2] = s[j].count(str1)
print(d)
for j in range(len(s)):
f = ''
for i in range(18):
f += str(d[j][i]) + chr(ord('a') + i) + '+'
print(f)
from scipy import linalg
import numpy as np
x = np.array([[19, 8, 0, 5, 0, 6, 27, 19, 6, 22, 16, 0, 1, 23, 2, 29, 14, 22], [26, 18, 9, 14, 3, 1, 0, 6, 20, 9, 24, 5, 6, 14, 13, 20, 7, 1], [16, 29, 5, 16, 11, 15, 15, 7, 26, 29, 17, 11, 12, 4, 6, 9, 21, 13], [25, 8, 3, 30, 16, 30, 30, 23, 3, 20, 11, 8, 27, 5, 5, 2, 20, 25], [17, 1, 15, 5, 29, 9, 24, 17, 29, 8, 27, 13, 19, 27, 28, 28, 5, 17], [16, 7, 12, 10, 10, 21, 11, 24, 10, 16, 1, 1, 25, 19, 28, 13, 23, 29], [26, 27, 27, 29, 24, 17, 24, 19, 30, 2, 10, 14, 11, 24, 17, 0, 21, 1], [30, 20, 24, 6, 6, 14, 9, 7, 22, 9, 7, 18, 22, 23, 22, 21, 7, 25], [8, 9, 9, 30, 15, 26, 17, 28, 12, 11, 26, 28, 22, 20, 5, 2, 1, 11], [4, 9, 25, 17, 10, 29, 28, 25, 12, 30, 2, 18, 8, 17, 8, 9, 8, 28], [5, 10, 23, 5, 30, 0, 14, 0, 28, 29, 23, 0, 22, 2, 27, 27, 18, 16], [0, 20, 3, 11, 28, 21, 2, 17, 17, 9, 22, 5, 19, 25, 29, 10, 27, 22], [12, 16, 4, 4, 4, 4, 15, 1, 26, 24, 14, 24, 18, 23, 4, 13, 17, 13], [26, 17, 11, 8, 29, 20, 7, 20, 26, 14, 28, 27, 28, 16, 26, 16, 9, 10], [22, 13, 23, 13, 20, 15, 5, 3, 1, 14, 29, 1, 0, 19, 13, 27, 23, 24], [15, 26, 23, 5, 5, 15, 20, 20, 7, 9, 5, 15, 20, 27, 8, 7, 18, 17], [12, 4, 15, 8, 1, 6, 27, 22, 2, 25, 15, 14, 25, 15, 18, 21, 28, 12], [4, 24, 11, 1, 22, 26, 11, 16, 18, 15, 18, 17, 1, 30, 9, 7, 19, 30]])
y = np.array([5462280,4346506,5891159,6839864,7912833,7049790,7455784,7311612,6299256,7114100,7037043,6873051,5644794,8014197,6432215,6638450,6959905,6705884])
z = linalg.solve(x, y)
print(z)
d = [21843,21571,31558,12659,28781,13164,28767,26994,14190,24422,12652,25966,29281,26207,29232,30061,24940,32115]
flag = ''
for i in d:
flag += chr(int('0x' + hex(i)[4:], 16)) + chr(int(hex(i)[:4], 16))
print(flag)
参考:https://www.anquanke.com/post/id/146419?mType=Group#h3-8
babyre
这道题拿到两个文件,babyre和out,刚开始没注意out文件,babyre又运行不了。看了看伪代码,没看出来怎么找flag。
主要就是几个函数,
都看了一遍,没发现和flag相关的关键词,而且不能运行,很多变量的意义掌握不了,找了一下writeup,发现忽略了out文件。
查看out文件有15行数据,应该是程序输出的数据,整个题输出数据的地方在函数sub_80488e0处。
输出30行,猜测应该是out文件每行可以分为两组。
至此可以发现,只要分析出sub_804868b函数即可。
经分析,函数只和a1,a2有关。
a1是输入,a2是两个数据的合并,
即a2=0x1D082C23A72BE4C1
直接写脚本,大部分代码可以直接复制伪代码。(参考writeup)
#include<stdio.h>
#include <string.h>
#include <stdint.h>
uint32_t encrypt(uint32_t a1, uint64_t a2) {
int j;
unsigned __int64 v5;
unsigned int v8;
v8 = a1;
for (j = 0; j <= 527; ++j)
{
v5 = a2 >> (j & 0x3F);
v8 = (v8 >> 1) ^ (((unsigned int)v5 ^ v8 ^ (v8 >> 16) ^ (0x5C743A2E >> (((v8 >> 1) & 1)+ 2* (2* (((v8 >> 20) & 1)+ 2* (2 * ((v8 & 0x80000000) != 0)+ ((v8 >> 26) & 1)))+ ((v8 >> 9) & 1))))) << 31);
}
return v8;
}
int main() {
unsigned int data[30] = // out
{
0xB80C91FE,0x70573EFE,
0xBEED92AE,0x7F7A8193,
0x7390C17B,0x90347C6C,
0xAA7A15DF,0xAA7A15DF,
0x526BA076,0x153F1A32,
0x545C15AD,0x7D8AA463,
0x526BA076,0xFBCB7AA0,
0x7D8AA463,0x9C513266,
0x526BA076,0x6D7DF3E1,
0xAA7A15DF,0x9C513266,
0x1EDC3864,0x9323BC07,
0x7D8AA463,0xFBCB7AA0,
0x153F1A32,0x526BA076,
0xF5650025,0xAA7A15DF,
0x1EDC3864,0xB13AD888
};
int i;
int j;
for (i = 0; i < 30; i++)
for (j = 0x20; j < 0x7F; j++)
if (encrypt(j, 0x1D082C23A72BE4C1) == data[i])
printf("%c", j);
printf("\n");
return 0;
}
对v5 = a2 >> (j & 0x3F);的分析:
shrd ax,bx,2 ax右移两位,空位用bx的低位代替。
逆向过程中的“去伪存真”真的是太重要了。今天还看了一道入群题,压根不知道那个题是个啥意思,难道非得硬怼汇编吗,有空再试试。