import std.bigint,std.conv,std.stdio,std.string;int M=10^^9+7,S=2400000;long z,a,e;void f(int n){z=0;foreach(c;` !BZK#B0H(5G!=BP6MD"1T%M^!90;WYBRN[">#'@++L]\Q3 #LDG5"QIV@7-@DHU6X0I=Y*S@;?!1+W'KD#SX>8?*\,)*%^=<1CPSE! !BLRM%#<:E'$E)%.UR!H9MS%4[?U#AG;&K)WQ5#K?8+P+V3J#O@8\IZ$0J.B<7<#.35/;7J?O4THU]Y4M(W.P3E)?(;EP#6R8@:U$CX$_/DY!U#0+367;A"TTF-8MFJ;$PG4-+;%[_J^G/EG:7X1KH*Y@=U!O3%7!;"HK@XA.@!C]KF#T:WPNQ- V-B^K8V?5$Y-(7OY^78*E8U1:,HN]1"1$I$S];R>A3$'(>>GG7K,^&$1I@ZH90UCSC2!M.]LTYIHW=1P8OX4@I+>HH%2GH,/X0^ ^WQS&[@1I9)Z)NQS)E#*(W*-!J-8<(&YF!-ZCR*U[$6S%=IG.C7S+2&)(7ZX__SG+E\3?5X[Z0FM^X95#XC35L%"+%$/!SU)N#2$>1B&UCMNI+RHWTN]Y,!9S-#ENB-V\7PG2\+1X]4K*;3Q8A&I=:!4*VNZ$Z/TE(6!S2!7ZJ(&57H?+CYN"Y$0PA,>-#R2&N"7P7B2-C$O'4Z[V[R)1<\7ON,A;:-XH'!E%CV=%B!YH/Z&M&YX4E)#>"!4(A@!3$[W^L]JV[IQ*P\@%W].=W0TN-K"?A%Z:F65KT[\W3X%:<;XV=<=GS?KKJ\/"Y_%;IS$B\ZB4OCAE7B! _=-S1D[#H8(HW8,5',B2V3\U* .:%A8%:[/J9W"A?Y!YB>IQK:9(1P0!7SDS.+6]@]VA%"":$%(=!^)@+]6O/Z-%5E%"M6&.VC=XM&'M>MH0%3]UQJW"Z$;D:%M$A6UNIB2 ZBTK[ DS]2P+A_CDX@L&&.,3%LO@;DRW+QAUQ ?JESR;,V=K+G-[K!Y[**S40;W=U^?WUWOH"Z0%L::6,3+0@0??DI7C#FU;ZYCKY[K?.,M;;#LP:-/5WUFIY9&/3T>J.\'^/I+\VUC7SFPDY M&HJ6%VG$']OO'=K_Y_@[STRFT+PFOO':FGKN4[VY5K-WG0JXT:DEM2'3=VH48Z"\OCM7=*PTMFA?RS2"CGE0T;6L@H96CF7)D_L/(,2Z K!TG+)&;X-.Q/"2*Z6W/ -&^7BHR1%+O(#RN:7K"6:O([GP:G;XAT;OTE!>7XWJ]*Z'^2ZF"Y0+)$>4JP5AU@8F[4FEW2]&/E.1\C$"UX.>V\&Y5N25[YG%M.B/8"F2VOF6OC,]58DCSQ0C)LOZSDVE:T=(\D#8S[W$&%;*Z]IE@0-DY0W4V=O6JS7AMQHF5R1?ZLP_EVG_KZ(,Q+*_Y#;B^Q$%AFPBC$!K26']LY#($&V0:S@A*ADOB?A]5IR\9+"DU%75?NL!$I1-DX/7^UB]'.Y1^#7/"L9Z( = 8+F*H< 5N &IV#\$,;^SHPY>Z/56P96+O2.?>UMJ WD35EO['GU>=8,4?J@W2P /.>T59L.D!)@I +'\<* GRD20TJ%G' 05WSYD+:4GVS0#W8X7[W%RM]#PSQM)V[/N,63*B#,FD(7"BFC6*S9,60FOAB>L>!19W=M@T!)*%$I;%NBU0$(2?Y+`[n/S*5..$][0..5])z=z<<6|c-32;for(;n%S;)z=z*n--%M;}void main(){foreach(t;0..readln.chomp.to!int){auto s=readln.split;BigInt C=s[0],P=s[1],r=C+1-P,l=r-P;a=0;if(l>=0&&l/M==r/M){f(r%M);a=z;f(l%M);for(e=M-2;e;e/=2,z=z*z%M)if(e&1)a=a*z%M;}a.writeln;}}