在仔细研究了交互协议之后,Polycarpus得出结论,如果他将应用程序的公钥适当地分成两部分,就可以获得密钥。公钥是一个长整数,甚至可以由一百万个数字组成!
Polycarpus需要找到这样一种方法,将公钥分成两个非空部分,即第一(左)部分可以被a整除,作为一个单独的数字,第二(右)部分可以作为一个独立的数字被b整除。这两部分都应该是没有前导零的正整数。Polycarpus知道a和b值。
帮助Polycarpus并找到任何合适的方法来剪切公钥。
116401024 97 1024
YES 11640 1024
284254589153928171911281811000 1009 1000
YES 2842545891539 28171911281811000
120 12 1
NO
输入的第一行包含信使的公钥——一个不带前导零的整数,其长度在1到10^6位之间。第二行包含一对空格分隔的正整数a,b(1≤a,b≤10^8)。
如果满足上述条件的方法存在,则在第一行打印“YES”(不带引号)。在这种情况下,接下来打印两行——切割后的左侧和右侧部分。连接的这两个部分必须与公钥完全相同。左边的部分必须可以被a整除,右边的部分必须被b整除。这两个部分必须是没有前导零的正整数。如果有几个答案,请打印其中任何一个。
如果没有答案,请打印一行“NO”(不带引号)
示例
116401024 97 1024
YES 11640 1024
284254589153928171911281811000 1009 1000
YES 2842545891539 28171911281811000
120 12 1
NO
116401024
97 1024
YES
11640
1024