N,M,L=map(int,input().split()) A=list(map(int,input().split())) B=list(map(int,input().split())) va=[0]*3000 vb=[0]*3000 count=0 for x in A: va[x]+=1 for x in B: vb[x]+=1 A=[] B=[] for x in range(-1000,1001): z=min(va[x],vb[x]) count+=z for i in range(va[x]-z): A.append(x) for i in range(vb[x]-z): B.append(x) L-=count if L<=0: print(0) exit() dp=[10**10]*((L+1)*(N+1)) v=[10**10]*((L+1)*(N+1)) dp[0]=0 for j in range(N+1): v[j]=0 for i in range(M): x=B[i] for count in range(i+1,0,-1): if count>L: continue for j in range(count,N+1): y=A[j-1] dp[count*(N+1)+j]=min(dp[count*(N+1)+j],v[(count-1)*(N+1)+j-1]+abs(x-y)) v[count*(N+1)+j]=min(v[count*(N+1)+j-1],dp[count*(N+1)+j]) print(v[L*(N+1)+N])