重组猎魔团试炼
题号:NC301625
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}一天,加藤翔子穿越到圣魔大陆,他了解到龙浩晨与伙伴们肩负重组荒漠边境的猎魔团的重任。
\hspace{15pt}为了确保新团员的能力平衡并且法阵效果最优,秘法贤者设下试炼。
\hspace{15pt}给定一串承载魔力的长度为 n 的数字符文 s,长度代表猎魔团人数,以及古老的整除咒语量值 d。龙浩晨必须从 s 中至少选择一个符文,且每个符文最多被选择一次,将所选的符文任意重排组成一个新的法阵编号(允许前导零),并施放整除咒语:只有当这个新的法阵编号能被 d 整除,试炼才算通过。
\hspace{15pt}翔子需要帮助龙浩晨团队找出能够通过整除咒语的最小法阵编号;若无法通过试炼,则重组失败。

\hspace{15pt}注意,最小法阵编号按十进制数值比较,取最小者;输出为该整数的十进制表示,不保留多余前导零(若答案为 0,输出 0)。

输入描述:

\hspace{15pt}第一行输入两个整数 n,d \left(1\le n\le8;\,1\le d\le100\right),表示符文串的长度、咒语力量值。
\hspace{15pt}第二行输入一个长度为 n,仅由 \texttt{`0'}\texttt{`9'} 字符组成的字符串 s,代表可选的数字符文。

输出描述:

\hspace{15pt}如果不存在满足条件的法阵编号,直接输出 -1;否则输出一个整数,表示能够被 d 整除的最小法阵编号。
示例1

输入

复制
6 17
271365

输出

复制
17
示例2

输入

复制
3 8
579

输出

复制
-1

备注:

\hspace{15pt}前导零代表隐藏潜力,单个 0 即可构成有效法阵编号。