eval"N,T,*A="+gets(p).split*?, d=*[p]*N-=1,[p]*T+[1] N.downto(1){|i|d[i-1]=(0..T).map{|j|d[i][j+A[i]]||d[i][j*A[i]]}} v,=A 1.upto(N){|i|putc (j=d[i][v+=b=A[i]])??+:?**v=(v-b)*b}