10
4 108 114
5 30 155
8 193 197
9 71 169
2 163 166
8 120 144
8 22 151
4 21 166
2 46 127
8 38 51
 20
9 142 172
7 132 256
8 245 315
9 496 496
3 345 362
8 13 162
5 342 470
9 16 488
9 467 482
4 471 478
10 92 224
6 228 261
9 54 167
2 402 409
5 9 10
7 225 360
3 438 483
6 252 342
3 491 493
6 296 367
 1
8 1234567890123 123456789012345

0
3
0
1
3
0
5
16
9
1
 0
0
0
0
4
6
13
7
0
0
1
2
3
0
0
2
12
9
1
4
 774752389568

#include<iostream>
#define int long long

const int N=1e5,B=10,L=60,INF=1e18;

using namespace std;

int dp[B+1][L+1][(1<<B)];
int cnt[B];

string tos(int x,int b)
{
    string res="";
    if(x==0){
        return "0";
    }
    while(x){
        res=(char)(x%b+48)+res;
        x/=b;
    }
    return res;
}
int calc(int n,int b)
{
    if(n==0){
        return 0;
    }
    string s=tos(n,b);
//    cout<<n<<" - "<<b<<" "<<s<<endl;
    int l=s.size();
    int res=0;
    fill(cnt,cnt+b,0);
    for(int i=1;i<l;i++){
        res+=dp[b][i][0];
//        cout<<i<<" "<<dp[b][i][0]<<endl;
    }
    for(int i=0;i<l;i++){
        int st=0;
        int x=s[i]-48;
        if(i==0)st=1;
        int mask=0;
        for(int j=0;j<b;j++){
            if(cnt[j]){
                mask^=(1<<j);
            }
        }
        for(int j=st;j<x;j++){
            int ost=l-i-1;
            int gg=(mask^(1<<j));
//            cout<<i<<" "<<ost<<" "<<mask<<" "<<gg<<" "<<dp[b][ost][gg]<<endl;
            res+=dp[b][ost][gg];
        }
        cnt[x]++;
        cnt[x]%=2;
    }
    bool ok=true;
    for(int j=0;j<b;j++){
        if(cnt[j])ok=false;
    }
    if(ok)++res;
    return res;
}
main()
{
    string s;
    int l=0;
    for(int i=2;i<=10;i++){
        s=tos(INF,i);
        l=s.size();
//        dp[i][0][0]=1;
        for(int j=1;j<i;j++){
            dp[i][1][(1<<j)]=1;
        }
        for(int j=2;j<=l;j++){
            for(int k=0;k<i;k++){
                int st=1;
//                if(k==0)st=2;
//                for(int j2=j;j2>=st;j2--){
                    for(int mask=0;mask<(1<<i);mask++){
                        int new_mask=(mask^(1<<k));
//                        if((j-j2+1)%2==1)new_mask^=(1<<k);
//                        if(i==2&&j==3&&new_mask==2){
//                            cout<<k<<" "<<j2<<" "<<mask<<" "<<new_mask<<" "<<dp[i][j2-1][mask]<<endl;
//                        }
                        dp[i][j][new_mask]+=dp[i][j-1][mask];
                    }
//                }
            }
        }
//        dp[i][1][1]=1;
//        for(int j)
    }
//    cout<<dp[2][3][2]<<endl;
//    for(int i=1;i<=4;i++){
//        for(int j=0;j<4;j++){
//            cout<<dp[2][i][j]<<" ";
//        }
//        cout<<endl;
//    }

//    cout<<calc()
//    cout<<dp[2][3][1]<<endl;
//    cout<<dp[2][2][0]<<endl;
//    cout<<dp[2][1][1]<<" "<<dp[2][1][2]<<endl;
    int q;
    cin>>q;
    while(q--){
        int b,l,r;
        cin>>b>>l>>r;
        cout<<calc(r,b)-calc(l-1,b)<<endl;
//        cal
//        cout<<calc(r,b)<<" ? "<<calc(l-1,b)<<endl;
    }
}
