def test(x: int, k: int) -> int: return (x >> k) & 1 #================================================== def solve(): N, Q = map(int, input().split()) A = [0] + list(map(int, input().split())) K = 26 bit_cum = [None] * K for k in range(K): bits = [test(a, k) for a in A] for i in range(1, N + 1): bits[i] += bits[i - 1] bit_cum[k] = bits power = [pow(2, k) for k in range(K)] for _ in range(Q): L, R = map(int, input().split()) ans = 0 for k in range(K): b = bit_cum[k][R] - bit_cum[k][L - 1] ans += power[k] * b * (R - L + 1- b) yield ans #================================================== import sys input = sys.stdin.readline write = sys.stdout.write write("\n".join(map(str, solve())))