#2217. 镜像拆分

镜像拆分

本题没有可用的提交语言。

题目描述

<o:p></o:p>

lxhgww非常喜欢数字游戏,他发现,很多数都可以表示成两个相互反转的数之和,他把这个现象称为数的镜像拆分。比如66共有五种镜像拆分方法:<o:p></o:p>

66 = 15 + 51<o:p></o:p>

66 = 24 + 42<o:p></o:p>

66 = 33 + 33<o:p></o:p>

66 = 42 + 24<o:p></o:p>

66 = 51 + 15<o:p></o:p>

注意,前导0是不允许的,所以66 = 60 + 06不算做合法的镜像拆分。<o:p></o:p>

现在lxhgww想知道,在K进制下,对于在[A, B]区间内的数,其镜像拆分的方案数之和是多少?<o:p></o:p>

<o:p></o:p>

输入格式

输入的第一行是一个数K<o:p></o:p>

输入的第二行是一个数n,表示数字A的长度。<o:p></o:p>

接下来n行,表示A从低位开始的每一位数字。<o:p></o:p>

然后是一个数m,表示数字B的长度。<o:p></o:p>

接下来m行,表示B从低位开始的每一位数字。<o:p></o:p>

<o:p></o:p>

输出格式

输出一行,包含一个整数,表示镜像拆分的方案数之和。由于这个答案非常大,只需要输出这个答案除以20110521的余数。<o:p></o:p>

<o:p></o:p>

10
2
6
6
2
6
6
5

数据范围与约定

【数据范围】


对于20%的数据,保证: 2<=K<=100,1<=n, m<=100


对于50%的数据,保证:2<=K<=1000,1<=n, m<=1000


对于100%的数据,保证: 2<=K<=100000,1<=n, m<=100000


对于所有的数据,保证: 0<A<=B,A, B的每一位数字都在[0, K-1]的范围内,没有前导0