#include <cstdio>
#define min(a,b) ((a)<=(b)?(a):(b))
int toC(int A,int B,int C) {
	if(A==0&&B==0) return 0;
	if(C&1) return toC(A>>1,B>>1,C>>1);
	if(B&1) return toC(C>>1,B>>1,A>>1)+1+toC((A|B|C)>>1,0,0);
	if(A&1) return toC(A>>1,B>>1,C>>1)+2*toC((A|B|C)>>1,0,0)+2;
}
int main() {
	int n,m;
	while(scanf("%d %d",&n,&m),n) {
		int x,y,z[3]={0};
		for(int i=0;i<3;i++) {
			scanf("%d",&x);
			for(int j=0;j<x;j++) {
				scanf("%d",&y);
				z[i]|=1<<(y-1);
			}
		}
		int mn=min(toC(z[0],z[1],z[2]),toC(z[2],z[1],z[0]));
		printf("%d\n",mn<=m?mn:-1);
	}
}