func_code_string: #include <bits/stdc++.h>   using namespace std;   namespace fft {   const int mod = 7340033;   const int root = 5;   const int root_1 = 4404020;   const int root_pw = 1 << 20;   template <class T>   T eea(T a, T b, T& x, T& y) {     if (!b) {       x = 1;       y = 0;       return a;     }     T x1, y1;     T g = eea(b, a % b, x1, y1);     x = y1;     y = x1 - (a / b) * y1;     return g;   }   int inverse(int n) {     int x, y;     eea(n, mod, x, y);     x %= mod;     if (x < 0) x += mod;     return x;   }   void fft(vector<int>& a, bool invert) {     int n = a.size();     for (int i = 1, j = 0; i < n; i++) {       int bit = n >> 1;       for (; j & bit; bit >>= 1) j ^= bit;       j ^= bit;       if (i < j) swap(a[i], a[j]);     }     for (int len = 2; len <= n; len <<= 1) {       int wlen = invert ? root_1 : root;       for (int i = len; i < root_pw; i <<= 1) wlen = 1LL * wlen * wlen % mod;       for (int i = 0; i < n; i += len) {         int w = 1;         for (int j = 0; j < len / 2; j++) {           int u = a[i + j], v = (int)(1LL * a[i + j + len / 2] * w % mod);           a[i + j] = u + v < mod ? u + v : u + v - mod;           a[i + j + len / 2] = u - v >= 0 ? u - v : u - v + mod;           w = 1LL * w * wlen % mod;         }       }     }     if (invert) {       int n_1 = inverse(n);       for (int& x : a) x = 1LL * x * n_1 % mod;     }   }   }  // namespace fft   int order(int n) {     int z = 0;     while (n % 2 == 1 && n > 1) {       n >>= 1;       z++;     }     return z;   }   vector<int> p[32];   int main() {     ios_base::sync_with_stdio(false);     cin.tie(nullptr);     cout.tie(nullptr);     cerr.tie(nullptr);     p[0] = p[1] = vector<int>(4096, 0);     p[0][0] = 1;     p[1][0] = p[1][1] = 1;     for (int i = 2; i < 32; i++) {       vector<int> q = p[i - 1];       fft::fft(q, false);       for (int i = 0; i < 4096; i++) {         q[i] = q[i] * 1ll * q[i] % fft::mod;         q[i] = q[i] * 1ll * q[i] % fft::mod;       }       fft::fft(q, true);       fill(q.begin() + 1005, q.end(), 0);       rotate(q.begin(), q.begin() + 1004, q.begin() + 1005);       q[0] = 1;       swap(p[i], q);     }     int q;     cin >> q;     while (q--) {       int n, k;       cin >> n >> k;       cout << p[order(n)][k] <<   n ;     }   }   