#!ruby -p X=10 s=0 c=proc{j=$`.size;$_[15]?1+j%2*2:14-j} scan(/\d|X/){s+=c[]*eval($&)} sub('?'){(0..9).find{|v|(s+v*c[])%($_[17]||11)<1}}