func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxb = 20;   const int maxn = 300000 + 7;   int dp[maxn][maxb];   int n, q;   int seq[maxn];   int last[maxb];   void init() {     cin >> n >> q;     for (int i = (1); i <= (n); ++i) cin >> seq[i];   }   void solve() {     for (int i = (0); i < (maxb); ++i) dp[n + 1][i] = n + 1;     for (int i = (0); i < (maxb); ++i) last[i] = n + 1;     for (int i = (n); i >= (1); --i) {       for (int j = (0); j < (maxb); ++j) dp[i][j] = n + 1;       int now = seq[i];       for (int j = (0); j < (maxb); ++j) {         if ((now >> j) & 1) {           for (int k = (0); k < (maxb); ++k)             dp[i][k] = min(dp[i][k], dp[last[j]][k]);           dp[i][j] = i;           last[j] = i;         }       }     }     while (q--) {       int x, y;       cin >> x >> y;       int r = seq[y];       int ok = 0;       for (int j = (0); j < (maxb); ++j) {         if (((r >> j) & 1) && dp[x][j] <= y) {           ok = 1;           break;         }       }       if (ok)         cout <<  Shi n ;       else         cout <<  Fou n ;     }   }   int main(void) {     ios::sync_with_stdio(false);     cin.tie(0);     init();     solve();     return 0;   }   