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