#include <bits/stdc++.h>
using namespace std;
const int MAXK = 1010;
const long long MOD = 7340033;
inline int read() {
  int x = 0, f = 1;
  char ch = getchar();
  for (; !isdigit(ch); ch = getchar())
    if (ch == '-') f = -1;
  for (; isdigit(ch); ch = getchar()) x = (x * 10) + (ch ^ 48);
  return x * f;
}
int n, r[4100], d, K;
long long A[31][MAXK], invn, w[2][4100];
long long fac[MAXK], ifac[MAXK];
inline long long qpow(long long a, long long b) {
  long long res = 1;
  while (b) {
    if (b & 1LL) res = res * a % MOD;
    a = a * a % MOD;
    b >>= 1;
  }
  return res;
}
inline void NTT_init() {
  int i;
  for (n = 1; n <= 4000; n <<= 1) d++;
  for (i = 0; i < n; i++) r[i] = (r[i >> 1] >> 1) | ((i & 1) << (d - 1));
  invn = qpow(n, MOD - 2);
  long long G = qpow(3, (MOD - 1) >> d);
  w[0][0] = w[0][n] = 1;
  for (i = 1; i < n; i++) w[0][i] = w[0][i - 1] * G % MOD;
  for (i = 0; i <= n; i++) w[1][i] = w[0][n - i];
}
inline void NTT(long long a[], int t) {
  int i, j, k;
  for (i = 0; i < n; i++)
    if (i < r[i]) swap(a[i], a[r[i]]);
  for (i = 2; i <= n; i <<= 1)
    for (j = 0; j < n; j += i)
      for (k = 0; k < (i >> 1); k++) {
        long long val = a[j + k + (i >> 1)] * w[t][(n / i) * k] % MOD;
        a[j + k + (i >> 1)] = (a[j + k] - val + MOD) % MOD;
        a[j + k] = (a[j + k] + val) % MOD;
      }
}
int q;
long long a[4100];
int main() {
  int i, j;
  NTT_init();
  fac[0] = 1;
  for (i = 1; i <= 1000; i++) fac[i] = fac[i - 1] * i % MOD;
  ifac[1000] = qpow(fac[1000], MOD - 2);
  for (i = 1000; i > 0; i--) ifac[i - 1] = ifac[i] * i % MOD;
  A[0][0] = 1;
  for (i = 1; i <= 30; i++) {
    for (j = 0; j <= 1000; j++) a[j] = A[i - 1][j];
    NTT(a, 0);
    for (j = 0; j < n; j++) a[j] = a[j] * a[j] % MOD, a[j] = a[j] * a[j] % MOD;
    NTT(a, 1);
    for (j = 0; j < n; j++) a[j] = a[j] * invn % MOD;
    A[i][0] = 1;
    for (j = 1; j <= 1000; j++) A[i][j] = a[j - 1];
    memset(a, 0, sizeof(a));
  }
  q = read();
  while (q--) {
    int id = 0;
    n = read(), K = read();
    while (n & 1) n >>= 1, id++;
    if (!n) id--;
    printf("%I64d\n", A[id][K]);
  }
  return 0;
}
