#P6380. 『MdOI R2』Mayuri

『MdOI R2』Mayuri

背景

「万由里……怎么会?为什么你要……」

『我是灵力的结晶体,实施了封印,我当然会消失,不是吗?』

「封印?但是你和我……」

『第一次见面不能封印吗?笨蛋,我可是从大家的灵力里出生的,怎么可能讨厌你?从一出生,我就爱着你。』

「万由里……」

『虽然我竭力不让自己去想,但我一定是很羡慕大家……』

「等一下,万由里,不要消失……」

『但是我还是有一件能向大家炫耀的事,只有我和士道一样……』

「一样?」

『我已经不再是只为了消失而出生的生命。因为我遇见了你……已经足够了。』

「万由里……」

『谢谢你,士道。 』

题目描述

在离开这个世界前,万由里想要寻找属于她的 Lucky Number。

万由里会给出一个数 aa,以及一个长度为 bb 的 01 串 SS。

简单的说,她的 Lucky Number 是满足以下条件的正整数 nn:

  • nn 的位数为 bb 且不含前导 00。

  • 若 SS 的第 ii 位为 11,则 nn 的前 ii 位组成的数是 aa 的倍数,否则 nn 的前 ii 位组成的数不是 aa 的倍数。

对于一个数,前 ii 位组成的数是指这个数前 ii 个数码依次拼接形成的数。例如 312311312311 前 33 位组成的数为 312312,前 55 位组成的数为 3123131231。

现在,请你帮助万由里计算一下,她的 Lucky Number 是多少。

由于满足条件的数可能会有多个,你需要输出最小的一个。若不存在,则请输出 -1。

输入格式

输入数据由两行构成。

第一行两个整数 a,ba,b,意义见题目描述。

第二行一个长度为 bb 的字符串 SS。

输出格式

一行,满足条件的最小的数 nn。如果不存在满足条件的数,输出 -1。

2 2
01
10
10 1 
1
-1
6 6
110100
601210

提示

【帮助与提示】

为方便选手测试代码,本题额外提供一组附加样例供选手使用。

样例输入 样例输出


【样例解释】

对于样例一,1010 是 22 位数,且 1010 的前 11 位组成的数 11 不是 22 的倍数,而前 22 位组成的数 1010 是 22 的倍数。由于 1010 已经是最小的两位数,故不存在比 1010 更小的满足条件的数。

对于样例二,我们需要构造一个 11 位数,满足这个 11 位数整除 1010。显然,这样的数不存在。


【数据范围】

本题采用捆绑测试

子任务编号 a≤a \leq b≤b\le 分值
Subtask 1 1010 1 1 2020
Subtask 2 1010 22
Subtask 3 6 6
Subtask 4 2 2 18 18
Subtask 5 10 10 105 10^5

对于全部数据,保证 2≤a≤102\le a\le 10,1≤b≤1051\le b\le 10^5,SS 中只包含 0 和 1。