#include<bits/stdc++.h>
#define double long double
#define int128 __int128
#define int long long
#define re register
#define in inline
#define Pi pair<int,int>
#define vi vector<int>
#define max(a,b) ((a)>(b)?a:b)
#define min(a,b) ((a)<(b)?a:b)
#define ls x<<1
#define rs x<<1|1
#define dx x+xx[i]
#define dy y+yy[i]
#define debug cout<<"wuyu"<<endl;
using namespace std;
const int INF=0x3f3f3f3f3f;
const int N=1e5+19;
const int M=1e6+10;
const int mod=998244353;
const double eps=1e-5;
in int read(){ re int x=0,f=0;re char c=getchar(); while(!isdigit(c)) f|=(c=='-'),c=getchar(); while(isdigit(c)) x=(x<<3)+(x<<1)+c-'0',c=getchar(); return f?-x:x;}
in void write(re int x){ if(x<0) putchar('-'),x=-x; if(x>9) write(x/10); putchar(x%10+'0');}
int n,m;
int l,r,b;
int a[101];
void init(){
a[0]=0;
}
int f[101][1025][2][10];
int dfs(int less,int dep,int now,int sign){
if(dep==0) return now==0&&sign==1;
if(less==1) if(~f[dep][now][sign][b]) return f[dep][now][sign][b];
int ed=less?(b-1):a[dep];
int ret=0;
for(int i=0;i<=ed;i++){
if(i==0) sign=sign;
else sign=1;
ret+=dfs((less)||(i<ed),dep-1,now^(1<<i),sign);
}
if(less==1) f[dep][now][sign][b]=ret;
return ret;
}
int work(int x){
init();
while(x){
a[++a[0]]=x%b;
x/=b;
}
return dfs(0,a[0],0,0);
}
signed main(){
memset(f,-1,sizeof(f));
int T;
T=read();
while(T--){
b=read();l=read();r=read();
cout<<work(r)-work(l-1)<<endl;
}
}