#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]);
  }
  if (!ns) ++ans;
  for (int i = n - 2; i >= 0; --i) {
    for (int j = 1; j < b; ++j) ans += dp[b][i][1 << j];
  }
  return ans;
}
