1978: 数字生成游戏

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:8 解决:6

题目描述

小明完成了这样一个数字生成游戏,对于一个不包含0的数字s来说,有以下3种生成新的数的规则:

1.       s任意两位对换生成新的数字,例如143可以生成314413134

2.       s任意一位删除生成新的数字,例如143可以生成141343

3.       s的相邻两位之间s[i]s[i + 1]之间插入一个数字xx需要满足s[i]<x<s[i + 1],即比它插入位置两边的数小。例如143可以生成12431343,但是不能生成11431543等。

现在小明想知道,在这个生成法则下,从s开始,每次生成一个数,可以用然后用新生成的数生成另外一个数,不断生成直到生成t至少需要多少次生成操作。

另外,小明给规则3又加了一个限制,即生成数的位数不能超过初始数s的位数。若s143,那么12431343都是无法生成的;若s1443,那么可以将s删除4变为143,再生成12431343

输入

第一行包含1个正整数,为初始数字s

2行包含一个正整数m,为询问个数。

接下来m行,每行一个整数tt不包含0),表示询问s开始不断生成数字到t最少要进行多少次操作。任两个询问独立,即上一个询问生成过的数到下一个询问都不存在,只剩下初始数字s

输出

包括m行,每行一个正整数,对每个询问输出最少操作数,如果无法输出-1

样例输入 复制

143
3
134
133
32

样例输出 复制

1
-1
4

提示

【样例说明】

143 -> 134

133无法得到

143 -> 13 -> 123 -> 23 -> 32

 

【数据规模与约定】

对于20%的数据,s < 100

对于40%的数据,s < 1000

对于40%的数据,m < 10

对于60%的数据,s < 10000

对于100%的数据,s < 100000m ≤ 50000