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;
template <class T, class U>
void maximize(T &x, U y) {
  if (x < y) x = y;
}
template <class T, class U>
void minimize(T &x, U y) {
  if (x > y) x = y;
}
template <class T>
T Abs(T x) {
  return (x < (T)0 ? -x : x);
}
template <class T>
T safe_sqrt(T x) {
  return sqrt(max((T)0, x));
}
template <class T, class U, class V>
T addmod(T x, U k, V mod) {
  return ((x + k) % mod + mod) % mod;
}
template <class T, class U, class V>
T submod(T x, U k, V mod) {
  return ((x - k) % mod + mod) % mod;
}
template <class T, class U, class V>
T mulmod(T x, U k, V mod) {
  return (long long)x * k % mod;
}
namespace task {
long long dp[11][20][2000];
int b;
long long l, r;
vector<int> digits;
vector<int> trans(long long x, int b) {
  vector<int> vec;
  while (x > 0) vec.push_back(x % b), x /= b;
  return vec;
}
long long calc(int base, int idx, int mask, bool flag) {
  if (idx == -1) return (mask == 0);
  if (~dp[base][idx][mask] and flag) return dp[base][idx][mask];
  long long ret = 0;
  int k = flag ? b - 1 : digits[idx];
  for (int i = 0; i <= k; ++i)
    ret += calc(base, idx - 1, mask ^ ((1LL) << (i)), flag | (i < k));
  if (flag) dp[base][idx][mask] = ret;
  return ret;
}
long long f(long long x) {
  if (!x) return 0ll;
  digits.clear();
  digits = trans(x, b);
  long long ret = 0;
  for (int i = 0; i < ((digits).size()); ++i) {
    int up = (i == ((digits).size()) - 1 ? digits[i] : b - 1);
    for (int j = 1; j <= up; ++j)
      ret +=
          calc(b, i - 1, ((1LL) << (j)), (i < ((digits).size()) - 1 or j < up));
  }
  return ret;
}
void solve() {
  int q;
  scanf("%d", &q);
  memset(dp, -1, sizeof(dp));
  while (q--) {
    scanf("%d%lld%lld", &b, &l, &r);
    long long ans = f(r) - f(l - 1);
    printf("%lld\n", ans);
  }
}
}  // namespace task
int main(void) { task::solve(); }
