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>
#include<cstdio>
using namespace std;
#define int long long
const int N=100;
int digit[N],f[10][N][1<<10][2];
inline int dfs(int b,int pos,int s,bool qd0,bool ismx){
	if (pos==0) return s==0;
	if (!ismx&&f[b][pos][s][qd0]) return f[b][pos][s][qd0];
	int ans=0,mx=ismx?digit[pos]:b-1;
	for (int i=0;i<=mx;++i) ans+=dfs(b,pos-1,qd0&&i==0?s:s^(1<<i),qd0&&i==0,ismx&&i==mx);
	if (!ismx) f[b][pos][s][qd0]=ans;
	return ans;
}
inline int solve(int b,int n){
	int tot=0;
	while (n) digit[++tot]=n%b,n/=b;
	return dfs(b,tot,0,1,1);
}
main(){
	int q,b,l,r;
	scanf("%lld",&q);
	while (q--) scanf("%lld%lld%lld",&b,&l,&r),printf("%lld\n",solve(b,r)-solve(b,l-1));
	return 0;
}