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>
#pragma GCC target("popcnt")
using namespace std;
long long dp2[66][11][2];
int lim[66];
int len, b;
long long D2(int rem, int on, bool lead) {
  if (on > b) return 0;
  if (rem == 0) return on == 0;
  auto &ret = dp2[rem][on][lead];
  if (ret == -1) {
    if (lead)
      ret = D2(rem - 1, 1, false) * (b - 1);
    else
      ret = on * D2(rem - 1, on - 1, false) +
            (b - on) * D2(rem - 1, on + 1, false);
  }
  return ret;
}
long long D(int rem, int flag, bool full, bool lead) {
  if (rem == 0) return !flag;
  if (full == false) {
    return D2(rem, __builtin_popcount(flag), lead);
  } else {
    long long ret = 0;
    for (int i = lead; i <= lim[len - rem]; i++) {
      ret += D(rem - 1, flag ^ (1 << i), i == lim[len - rem], false);
    }
    return ret;
  }
}
long long solve(int b, long long f) {
  ::b = b;
  len = 0;
  do {
    lim[len++] = f % b;
    f /= b;
  } while (f);
  reverse(lim, lim + len);
  memset(dp2, -1, sizeof(dp2));
  long long ret = 0;
  for (int i = 2; i <= len; i += 2) {
    ret += D(i, 0, i == len, true);
  }
  return ret;
}
int main() {
  int q;
  scanf("%d", &q);
  while (q--) {
    int b;
    long long l, r;
    scanf("%d%lld%lld", &b, &l, &r);
    printf("%lld\n", solve(b, r) - solve(b, l - 1));
  }
}
