M=10**9+7;I=[1,1];*F=I;*R=I 2.upto(999){|i|I<(a,b,c){(F[a+b+c-1]*R[b-1]*R[a+c]+g(a-1,b,c-1))%M} def g(a,b,c) $memo[[a,c]]||=F[a+b+c]*R[b-1]*R[a+c+1]%M+(a>0?g(a-1,b,c):F[b+c]*R[b]*R[c]%M)+(c>0?g(a,b,c-1):F[a+b]*R[a]*R[b]%M)%M end gets;$<.map{|e|$memo={};p f[*e.split.map(&:to_i)]}