你最近发现了 Visual Studio 的一个新功能——固定文件!你不知道固定文件有什么用——当你问朋友时,他们对此只字不提——但这并不妨碍你整天整夜地固定和取消固定文件。
Visual Studio 维护着你当前打开的文件列表。列表开头是已固定的文件,后面是未固定的文件。改变列表顺序不是通过拖拽操作,而是通过切换文件的固定状态来实现的。如果一个已固定的文件被取消固定,它会从列表中移除,然后被添加到第一个未固定文件之前。如果一个未固定的文件被固定,它会从列表中移除,然后被添加到最后一个已固定文件之后。
考虑以下四个文件(编号为 1 到 4)的例子。初始配置为 2, 1, 4, 3,其中文件 1 和 2 已固定。如果期望的最终配置为 4, 2, 3, 1,且只有文件 4 已固定,可以通过以下五次切换操作完成:
2 1 4 3 初始状态( 表示已固定) 2 1 3 4 固定文件 3 2 1 3 4 固定文件 4 2 3 4 1 取消固定文件 1 2 4 3 1 取消固定文件 3 4 2 3 1 取消固定文件 2
这五次操作是从初始配置到达最终配置的最少操作次数。
给定文件的初始列表,确定到达列表不同排序所需的最少移动次数。文件编号为 1 到 $n$。
输入格式
输入包含四行。第一行包含两个非负整数 $p$ 和 $u$,分别表示已固定文件的数量和未固定文件的数量。文件总数 $n = p + u$ 满足 $1 \le n \le 100$。下一行包含 $n$ 个数字,表示列表。前 $p$ 个数字是已固定的文件,后 $u$ 个数字是未固定的文件。接下来的两行以与前两行相同的格式表示最终配置。初始配置和最终配置的文件数量相同。数字 1 到 $n$ 在每个文件列表中各出现一次。
输出格式
输出从初始配置到达最终配置所需的最少移动次数。
样例
样例输入 1
1 1 1 2 1 1 2 1
样例输出 1
2
样例输入 2
1 1 1 2 1 1 1 2
样例输出 2
0
样例输入 3
2 2 2 1 4 3 1 3 4 2 3 1
样例输出 3
5