$h={}
$x=$z=0
def d n,l,c
$z+=1
#$h[l+[n]]||=n<0?[]:n>0?l.flat_map{a,*b=l.rotate!;d(n-a,b.sort).map{|i,j|[i,(j+[a]).sort]}}.uniq: [[l,[]]]
$h[l+[n,c]]||=n<0?[]:n>0?(c..l.size-1).flat_map{|k|d(n-l[k],l[0,k]+l[k+1..-1],k).map{|i,j|[i,j+[l[k]]]}}.uniq: [[l,[]]]
end
def s e,f
$x+=1
#$h[[e,f.sort]]||=
e[0]?f.max>e.max&&f.any?{a,*b=f.rotate!;d(a,e,0).any?{|i,j|s i,j+b}}:1
end
(*e,f=gets.split.map(&:to_i).sort
require'pp'
#pp d(f,e,0)
puts s(e,[f])?:YES:"NO"
)while gets[0]>?0
p $z,$x