gx,gy,n=gets.split.map &:to_i a=$<.map{|e|e.split.map &:to_i} h=Hash.new [] hh=Hash.new [] n.times do |i| r=[] h.each do |e,v| a[i][2].times do |j| g=[e[0]+a[i][0]*(j+1),e[1]+a[i][1]*(j+1)] hh[g]=hh[g]+v.map{|e|e+[[i,j+1]]} end end a[i][2].times do |j| hh[[a[i][0]*(j+1),a[i][1]*(j+1)]]=hh[[a[i][0]*(j+1),a[i][1]*(j+1)]]+[[[i,j+1]]] end h=hh.dup end c=0 b=[0,1] 2.upto(50) do |e| b<< b[-1]*e end h[[gx,gy]].each do |e| hh=Hash.new 0 cc=0 e.each do |ee| hh[ee[0]]+=ee[1] cc+=ee[1] end g=b[cc] hh.each do |ee,vv| g/=vv end c+=g end p c