超导铁轨
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

室温超导是科学界的里程碑式的一项技术,然而这项技术已经被另一个平行宇宙的斯特国掌握,并把这项技术应用于列车铁轨上,从而带动其生产力的发展。然而,这项技术最大的弊端是对能源需求太高。建设铁轨的成本和技术要求太高了,斯特国的工程师使用了一个更优的方案。

对于一条铁轨,铁轨可以看成许多个点拼接而成,使用一个只包含小写的字符串来表示,而现在工程师需要建设两条铁轨,那么将给出两个字符串st。充满智慧的工程师提出了一个卓越超前的想法:在两条铁轨上选择完全相同的一段进行合并以此来减少建设成本。然而麻烦的是,这两条铁轨分别都有一些被严格控制的点不能被选择用于合并。也就是说,对于第一个条铁轨,有n个限制,包括a_1、a_2、……、a_n,铁轨中这些位置上的点不能被用于合并,同理对于第二个铁轨,也有m个限制,包括b_1、b_2、……、b_m

问,在满足上述限制条件下,最长能够合并的铁轨长度是多少

输入描述:

第一行和第二行分别是两个字符串stst下标从0开始

第三行,一个整数n0\le n\le |s||s|表示字符串s的长度

第四行,n个整数,a_1……a_n。表示对第一个铁轨的限制。0 \le a_i<|s|

第三行,一个整数m0\le m\le|t||t|表示字符串t的长度

第四行,m个整数,b_1……b_m。表示对第一个铁轨的限制。0 \le b_i<|t|

输出描述:

一行,包括一个整数,表示最长能够合并的铁轨的长度。

示例1

输入

复制
abcdffedz
cdffe
2
3 8
1
0

输出

复制
3

说明

对于第一个字符串,下标为3、8的位置不能被选取被合并,即被红框标记的'd'和'z'
对于第二个字符串,下标为0的位置不能被合并,即开头第一个'c'
那么两个字符串最长可合并的段只有“ffe”这个字符串,长度为3

备注:

1 \le |s|,|t|\le1000000