# -*- coding: utf-8 -*- _={│:[1,4],─:[2,8],┌:[4,8],┐:[4,2],└:[1,8],┘:[1,2],┼:[1,4,2,8]} s=->a,l,b{l==[]&&a==[]?b:(l.product(l).any?{|q,r|q,r=q[0],r[0];(q[0]-r[0])**2+(q[1]-r[1])**2>a.size**2}?!0:(w,f=l.pop w&&v=!a.size.times{|i|y=_[x=a[i]] f&&y&[f]==[]||(k=l.select{|p,d|w!=p||y&[d]==[]} (y-[f]).map{|d|z=[w[0]+(d<2?-1:(d&4)/4),w[1]+(d==2?-1:d>7?1:0)] g=d<3?d*4:d/4 b[z]?_[b[z]]&[g]!=[]||v=0:k<<[z,g]} v||r=s[a[0...i]+a[i+1..-1],k,b.merge({w=>x})] return r if r)}))} c=eval"[#{gets}]" r=s[6.downto(0).map{|i|[_.keys[i]]*c[i]}.flatten,[[[0,0],nil]],{}] h=j=k=l=0 r.map{|w,_|y,x=w h>x&&h=x j>y&&j=y k