# https://yukicoder.me/problems/no/3205 def main(): N, Q = map(int, input().split()) A = list(map(int, input().split())) queries = [] for _ in range(Q): l, r = map(int, input().split()) queries.append((l, r)) arrays = [[0] * N for _ in range(26)] for i in range(26): for j in range(N): x = 1 if (1 << i) & A[j] > 0 else 0 arrays[i][j] = x cum_arrays = [[0] * (N + 1) for _ in range(26)] for i in range(26): c = 0 for j in range(N): c += arrays[i][j] cum_arrays[i][j + 1] = c for l, r in queries: answer = 0 for i in range(26): one = cum_arrays[i][r] - cum_arrays[i][l - 1] zero = (r - l + 1) - one ans = one * zero answer += ans * (1 << i) print(answer) if __name__ == "__main__": main()