func_code_string: #include <bits/stdc++.h>   using namespace std;   void fast() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     cout.tie(NULL);   }   const long long INFll = 1ll * 1000000000 * 1000000000;   const long double PI =       3.141592653589793238462643383279502884197169399375105820974944;   int mul(int a, int b, int mod = 1000000007) { return int(a * 1ll * b % mod); }   int norm(int a, int mod = 1000000007) {     while (a >= mod) a -= mod;     while (a < 0) a += mod;     return a;   }   int powmod(int x, int y, int mod = 1000000007) {     int res = 1;     while (y > 0) {       if (y & 1) res = mul(res, x, mod);       x = mul(x, x, mod);       y = y >> 1;     }     return res;   }   int inv(int a, int mod = 1000000007) { return powmod(a, mod - 2); }   int main() {     fast();     int n;     cin >> n;     vector<int> dp((1 << 22), -1), a(n);     for (int i = 0; i < n; i++) {       cin >> a[i];       dp[a[i]] = a[i];     }     int p = (1 << 22);     for (int i = 0; i < p; i++) {       if (dp[i] != -1)         for (int j = 0; j < 22; j++) {           if ((i & (1 << j)) == 0) {             dp[i | (1 << j)] = dp[i];           }         }     }     for (int i = 0; i < n; i++) {       cout << dp[(1 << 22) - 1 - a[i]] <<    ;     }     return 0;   }   