#include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N, Q; cin >> N >> Q; vector A(N + 1); for (int i = 1; i <= N; i++) { cin >> A[i]; } const int B = 26; // pref[b][i] := A[1],...,A[i] のうち bit b が 1 の個数 vector> pref(B, vector(N + 1, 0)); for (int b = 0; b < B; b++) { for (int i = 1; i <= N; i++) { pref[b][i] = pref[b][i - 1] + ((A[i] >> b) & 1); } } while (Q--) { int L, R; cin >> L >> R; long long len = R - L + 1; long long ans = 0; for (int b = 0; b < B; b++) { long long c1 = pref[b][R] - pref[b][L - 1]; long long c0 = len - c1; ans += (1LL << b) * c0 * c1; } cout << ans << '\n'; } return 0; }