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;
void LOAD();
void PROCESS();
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  LOAD();
}
int L, R, b;
int F[60][60][1100];
void Build(int k) {
  for (int i = 1; i <= 58; i++)
    for (int j = 0; j < (1 << k); j++)
      for (int e = 0; e < k; e++) {
        if (e == 0 && i == 1) continue;
        F[k][i][j] += F[k][i - 1][j ^ (1 << e)];
      }
}
void LOAD() {
  for (int i = 2; i <= 10; i++) {
    F[i][0][0] = 1;
    Build(i);
  }
  int Test;
  cin >> Test;
  for (int i = 1; i <= Test; i++) {
    cin >> b >> L >> R;
    PROCESS();
  }
}
string Trans(int x, int b) {
  string S = "";
  while (x > 0) {
    S += (char)((x % b) + '0');
    x /= b;
  }
  return S;
}
int Cal(int x) {
  int res = 0, T = 0;
  string A = Trans(x, b);
  if (A == "") return 0;
  vector<int> L;
  for (int i = 0; i < A.size(); i++) L.push_back(A[i] - '0');
  for (int i = 1; i < A.size(); i++) res += F[b][i][0];
  for (int i = L.size() - 1; i >= 0; i--) {
    for (int j = 0; j < L[i]; j++) {
      if (i == L.size() - 1 && j == 0) continue;
      res += F[b][i][T ^ (1 << j)];
    }
    T ^= (1 << L[i]);
  }
  res += (T == 0);
  return res;
}
void PROCESS() { cout << Cal(R) - Cal(L - 1) << '\n'; }
