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 <bits/stdc++.h>
using namespace std;
long long f[100][1 << 11], l, r;
int b, a[100], t, n;
long long dfs(int pos, int limit, int state, int lead) {
  if (!pos) {
    return state == 0;
  }
  if (!limit && ~f[pos][state] && lead) return f[pos][state];
  int lim = limit ? a[pos] : b - 1;
  long long ret = 0;
  for (int i = lim; i >= 0; i--) {
    if (!lead && !i)
      ret += dfs(pos - 1, 0, 0, 0);
    else
      ret += dfs(pos - 1, limit && i == lim, state ^ (1 << i), 1);
  }
  if (!limit && lead) f[pos][state] = ret;
  return ret;
}
long long solve(long long num) {
  int tmp[100];
  memset(tmp, 0, sizeof(tmp));
  memset(a, 0, sizeof(a));
  memset(f, -1, sizeof(f));
  for (n = 0; num; num /= b) tmp[++n] = num % b;
  for (int i = 1; i <= n; i++) a[i] = tmp[n - i + 1];
  return dfs(n, 1, 0, 0);
}
int main() {
  scanf("%d", &t);
  while (t--) {
    scanf("%d%lld%lld", &b, &l, &r);
    printf("%lld\n", solve(r) - solve(l - 1));
  }
  return 0;
}
