#include using namespace std; const int M=1e9+7; int cmp(string a,string b){ int i=0,j=0; while(i<(int)a.size()-1&&a[i]=='0')i++; while(j<(int)b.size()-1&&b[j]=='0')j++; int la=a.size()-i,lb=b.size()-j; if(la!=lb)return la=0;i--){ int v=(s[i]-'0')*2+c; s[i]='0'+v%10; c=v/10; } if(c)s.insert(s.begin(),'1'); int i=0;while(i<(int)s.size()-1&&s[i]=='0')i++; s=s.substr(i); int j=s.size()-1; while(j>=0&&s[j]=='0'){s[j]='9';j--;} if(j>=0)s[j]--; i=0;while(i<(int)s.size()-1&&s[i]=='0')i++; return s.substr(i); } long long modstr(string s){ long long r=0; for(char c:s)r=(r*10+(c-'0'))%M; return r; } long long getp(string s,long long&pval){ int i=0;while(i<(int)s.size()-1&&s[i]=='0')i++; string t=s.substr(i); if(t.size()>10)return -1; if(t.size()==10&&t>"1000000007")return -1; long long v=0; for(char c:t){v=v*10+(c-'0');if(v>=M)return -1;} pval=v;return 0; } int main(){ ios::sync_with_stdio(false);cin.tie(nullptr); int T; if(!(cin>>T))return 0; while(T--){ string C,P; cin>>C>>P; long long p; if(getp(P,p)!=0){cout<<0<<"\n";continue;} if(cmp(C,dblsub1(P))<0){cout<<0<<"\n";continue;} long long n=(modstr(C)-p+1)%M; if(n<0)n+=M; if(n