#include<stdio.h>
#include<algorithm>
using namespace std;
int n,m,p,num,a[10001],b[10001],x[10001],i,j,one[10001];
void add(int a[], int b[])
{
int i,t=0;
for (i=1;i<=a[0] || i<=b[0] || t;i++,t/=n)
a[i]=(t+=a[i]+b[i])%n;
a[0]=i-1;
}
int compare(int a[], int b[])
{
if (a[0]!=b[0]) return 1;
for (int i=a[0];i>=1;i--)
if (a[0]!=b[0]) return 1;
return 0;
}
int cautbin(int st,int dr,int o)
{
int m=(st+dr)/2;
if (x[m]==o)
return m;
else
if (x[m]<o)
cautbin(m+1,dr,o);
else
cautbin(st,m,o);
}
int main()
{
freopen ("nextseq.in","rt",stdin);
freopen ("nextseq.out","wt",stdout);
scanf("%d %d %d",&n,&m,&p);
for (i=1;i<=n;i++)
scanf("%d",&x[i]);
for (i=1;i<=m;i++) scanf("%d",&a[i]);
for (i=1;i<=p;i++) scanf("%d",&b[i]);
sort(x+1,x+n+1);
a[0]=m;
for (i=1;i<=m;i++)
a[i]=cautbin(1,n,a[i])-1;
b[0]=p;
for (i=1;i<=p;i++)
b[i]=cautbin(1,n,b[i])-1;
one[0]=one[1]=num=1;
while (compare(b,a)!=0)
add(a,one),num++;
printf("%d\n",num-2);
return 0;
}