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;
const int INF = 0x3fffffff;
const int SINF = 0x7fffffff;
const long long LINF = 0x3fffffffffffffff;
const long long SLINF = 0x7fffffffffffffff;
const int MAXN = 65;
const int MAXB = 10;
const int MAXS = (1 << 10) + 7;
int q;
int b;
long long l, r;
int a[MAXN];
long long dp[MAXB + 3][MAXN][MAXS];
void init();
void input();
void inputq();
void work();
long long getans(long long x);
int main() {
  init();
  input();
  work();
}
void init() {
  ios::sync_with_stdio(false);
  for (int i = 2; i <= MAXB; ++i) {
    int ms = (1 << i);
    dp[i][0][0] = 1;
    for (int j = 1; j < MAXN; ++j) {
      for (int k = 0; k < ms; ++k) {
        for (int x = 0; x < i; ++x) {
          dp[i][j][k ^ (1 << x)] += dp[i][j - 1][k];
        }
      }
    }
  }
}
void input() { scanf("%d", &q); }
void inputq() { scanf("%d%I64d%I64d", &b, &l, &r); }
void work() {
  for (int i = 0; i < q; ++i) {
    inputq();
    printf("%I64d\n", getans(r) - getans(l - 1));
  }
}
long long getans(long long x) {
  if (!x) return 0;
  int n = 0;
  for (long long t = x; t; t /= b) {
    a[n++] = t % b;
  }
  long long ans = 0;
  int beg, ns = 0;
  for (int i = n - 1; i >= 0; --i) {
    beg = (i == n - 1) ? 1 : 0;
    for (int j = beg; j < a[i]; ++j) {
      ans += dp[b][i][ns ^ (1 << j)];
    }
    ns ^= (1 << a[i]);
  }
  for (int i = n - 2; i >= 0; --i) {
    for (int j = 1; j < b; ++j) ans += dp[b][i][1 << j];
  }
  return ans;
}
