func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 300010;   int a[N], f[N][21], la[21];   int main() {     int n, q;     scanf( %d%d , &n, &q);     for (int i = 1; i <= n; i++) {       scanf( %d , &a[i]);       for (int j = 0; j <= 18; j++)         if (!(a[i] & (1 << j)))           for (int k = 0; k <= 18; k++)             if (a[i] & (1 << k)) f[i][j] = max(f[i][j], f[la[k]][j]);       for (int j = 0; j <= 18; j++)         if (a[i] & (1 << j)) f[i][j] = i, la[j] = i;     }     for (int i = 1; i <= q; i++) {       int l, r;       scanf( %d%d , &l, &r);       bool flag = false;       for (int j = 0; j <= 18; j++)         if ((a[l] & (1 << j)) && f[r][j] >= l) flag = true;       if (flag)         printf( Shi n );       else         printf( Fou n );     }     return 0;   }   