问题 AM: 密码

内存限制:256 MB 时间限制:1 S
题面:传统 评测方式:文本比较 上传者:
提交:10 通过:6

题目描述

   zz来到城堡前, 他必须输入密码才能进入城堡。
   城堡密码的输入设备有点特别。输入设备是一个1×n的矩形,分为n个正方形面板。它们从左到右编号为1到n。每个面板都有一个开或关的状态。最初,所有面板都处于关闭状态。

zz可以进入城堡当且仅当 x1-th, x2-th, ...xk-th 面板处于打开状态,其他面板处于关闭状态。
    zz得到一个数组a1,...,ai。在每一步中,她可以执行以下操作:选择一个索引i(1≤i≤l),选择连续的ai面板,并翻转那些面板的状态(即开→关,关→开)。
    不幸的是,她忘记了如何用上述操作输入密码。确定进入她的城堡所需的最少操作次数。

 

输入格式

        输入第一行包含三个整数n、k和l(1≤n≤10000,1≤k≤10,1≤l≤100),用单个空格分隔。
        第二行包含k个整数x1,...,xk(1≤x1<x2<...<xk≤n),用单个空格分隔。
        第三行包含l个整数a1,...,al(1≤ai≤n),用单个空格分隔。
        数组ai的某些元素可能是等值的。输出键入密码所需的最小移动次数。如果不可能,打印-1。

输出格式

输出键入密码所需的最少移动次数。如果不可能,打印-1。

输入:

10 8 2

1 2 3 5 6 7 8 9

3 5

输出:

2

输入:

3 2 1

1 2

3

输出:

-1

在第一个示例中键入密码的一种可能方法如下:在第一步中,选择第一、第二、第三个面板并翻转这些面板。在第二步中,选择第5、第6、第7、第8、第9个面板,然后翻转这些面板。

输入样例 复制

10 8 2
1 2 3 5 6 7 8 9
3 5

输出样例 复制

2