#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <stack>

using namespace std;

int n,s,r,x;
bool b;
vector <int> treba,ima,pom;

int rek(int x,stack <int> bla) {
	
	if (x==ima.size()) {
		pom.clear();
		while (bla.size()>0) {
			pom.push_back(bla.top());
			bla.pop();
		}
		int sol=0;
		for (int i=0;i<treba.size();i++) {
			b=false;
			for (int j=0;j<pom.size();j++) {
				if (treba[i]==pom[j]) b=true;
			}
			if (!b) sol++;
		}
		return sol;
	}
	
	bla.push(ima[x]-1);
	int nes=rek(x+1,bla);
	bla.pop();
	
	bla.push(ima[x]+1);
	nes=min(nes,rek(x+1,bla));
	bla.pop();
	return nes;
}

int main (void) {
	scanf("%d %d %d",&n,&s,&r);
	for (int i=0;i<s;i++) {
		scanf("%d",&x);
		treba.push_back(x);
	}
	bool booool;
	for (int i=0;i<r;i++) {
		scanf("%d",&x);
		booool=false;
		for (int j=0;j<treba.size();j++) {
			if (x==treba[j]) {
				booool=true;
				treba.erase(treba.begin()+j);
			}
		}
		if (!booool) ima.push_back(x);
	}
	sort(treba.begin(),treba.end());
	sort(ima.begin(),ima.end());
	stack <int> nekaj;
	printf("%d\n",rek(0,nekaj));
//	system("pause");
	return 0;
}
