def f;gets.split.map &:to_i;end
while(n,m=f)[0]>0
l=(0..2).map{(i=f)[0]=0;i}
r=[0,1].map{|x|a,b,c=t=l.map(&:dup);(0..m).find{|d|!(b[1]||a[1]&&c[1])||![t[x][-1]>t[z=y=x+1][-1]&&(x,y=y,x),(t[x].push t[y].pop),x=2-z]}||1e8}.min
p r<1e8?r:-1
end