#include <bits/stdc++.h>
using namespace std;
const int L = 32;
const int K = 1001;
const int MOD = 7340033;
int sum[K], dp[L][K];
inline void add(int& x, long long val) { x = (x + val) % MOD; }
int main() {
  dp[1][0] = 1;
  for (int i = 2; i < L; i++) {
    for (int j = 0; j < K; j++) sum[j] = 0;
    for (int j = 0; j < K; j++)
      for (int k = 0; k < K; k++)
        if (j + k < K) add(sum[j + k], dp[i - 1][j] * 1ll * dp[i - 1][k]);
    for (int j = 0; j < K; j++) {
      if (j >= 1) add(dp[i][j], 4 * dp[i - 1][j - 1]);
      if (j >= 2) add(dp[i][j], 6 * sum[j - 2]);
      if (j >= 3) {
        for (int k = 0; k <= j - 3; k++)
          add(dp[i][j], 4 * sum[k] * 1ll * dp[i - 1][j - 3 - k]);
      }
      if (j >= 4) {
        for (int k = 0; k <= j - 4; k++)
          add(dp[i][j], sum[k] * 1ll * sum[j - 4 - k]);
      }
    }
    dp[i][0] = 1;
  }
  int q;
  cin >> q;
  for (int i = 0; i < q; i++) {
    int n, k, l = 0;
    cin >> n >> k;
    while (n % 2 && n > 2) {
      n = (n - 1) / 2;
      l++;
    }
    if (k == 0) {
      cout << 1 << endl;
      continue;
    }
    cout << dp[l][k - 1] << endl;
  }
  return 0;
}
