import std.bigint,std.conv,std.stdio,std.string;int M=10^^9+7,S=2000000;long y,z,a,b,e; void i(long n){y=1;for(e=M-2;e;e/=2,n=n*n%M)if(e&1)y=y*n%M;} void f(int n){ if(n>M/2){ f(M-1-n);i(z);z=n%2?y:M-y; }else{ z=0;foreach(j;0..5)z=z<<6| ` !B=0C7/<4.V2V27-.^Y,'HKAMQ%M^!9)^4I94!^%%E5Y?T=19Q\AN/ _ #LDGF$!,F!*&U)$COW,R,_QD<[=5B@;?!1OGT;@K)(_ K",F.32="G7PZUN1CPSE$ Z6-+M8OA-G"I0M2RL+ZA ,BC6*V;7J?O:-;Z*UFC(FT[I0CKYMS9%(!W5#6R8@*$15VW3E4:WN"%#AS_A%"K917"TTF-0S.1JI2,HZ V3?27W =19)+(JG:7X1*!I;>@;<.:BSJ2:LQN)>E*F$:.@!C]#E$QX7F-4>)@IVNYT=]K=%D87$Y-(7>F58! %\S!/E&?O30]LA:>$H]$S];RGHNXU+K0=A;2KRX,L2[IQ4U1^H90UC#]3^J+H^404U;K\$^?+-#' (7@I+>H4W-3R1J+7U!7R\TLGC="&C #C&2O"#@5-O;3:-(OEEH2)WH#+%./FJ]A-[^!RF?MAW)+,GK,>L/.,.M>V0?/F=5O'9QPO=Q5_5S\L))3RP"T\L*0D6-&[@1I0!B>^.A6FHR$PL@N&LO,!&)(7Z4.]&2&=+9NODXZ3+6LV]?UCMNI#..]F8_OK.)CWZ$[$#DB:W6I'FKM*)=V4X$"4^1V;<+TB;@*5:F7285GTL&%H)$&]+Z;<+R+-A6>&1Y^'J) M1U0')B<%*MN%C)G,+CC#!V*QT5I9,><,&R!C $:3O2%@PHQX,'47 E $K*G_=JH#D;X7$P%^K9ED'Z2W302X#&T'X#T4,QKOC/[8$+GIE+;-05]<2W)Z_MU14<358*6YBK@C?4KX/_'>,(#.PP-#R(ZH0G2;03:/K> 9N?O9&[#LZ$)1<\7J:7%,:YVC\;DU,DG!)6]"?@\,H/Z&MWL 'Y09<==3;08(/#:&EA$UX_L]JV[V,7/CJX[:795-/K# _,N+V/=0%Z:F6LC(<.=HI^&K51MS1J!E3I[0 0KKJ\/!C33',Z@]H5"8@ZKM<=;` [n/S*5+j]-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);i(z);a=a*y%M; } a.writeln; }}