Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

P183SUMB - ROUND 3B - AONRD

Cho một mảng A[] gồm N số nguyên và Q truy vấn.

Với mỗi truy vấn, bạn sẽ được cho biết 2 số nguyên L, R (1 ≤ L < R ≤ N), và bạn phải tìm tổng của tất cả các biểu thức (Ax AND Ay + Ax OR Ay), với L ≤ x < y ≤ R.

Input

Dòng đầu tiên chứa một số nguyên T (1 ≤ T ≤ 4) là số bộ test.

Tiếp theo đó là T bộ test, tất cả đều tuân theo định dạng sau:

Dòng đầu tiên của mỗi bộ test chứa hai số nguyên N và Q (2 ≤ N ≤ 105, 1 ≤ Q ≤ 105).

Dòng thứ hai của mỗi bộ test chứa N số nguyên A_i là các phần tử của A[] (0 ≤ Ai < 240).

Q dòng tiếp theo, mỗi dòng gồm 2 số nguyên L và R (1 ≤ L < R ≤ N); cho biết thông tin về mỗi truy vấn.

Output

Với mỗi truy vấn bất kỳ, in ra trên 1 dòng một số nguyên duy nhất là kết quả mà truy vấn đó yêu cầu.

Kết quả lấy số dư khi chia cho 4 × 1018.

Example

Input:
1
4 1
5 9 2 7
1 4

Output:
69

Được gửi lên bởi:adm
Ngày:2018-07-20
Thời gian chạy:4s
Giới hạn mã nguồn:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Ngôn ngữ cho phép:ASM32-GCC ASM32 ASM64 MAWK BC C CSHARP C++ 4.3.2 CPP CPP14 COFFEE LISP sbcl DART FORTH GO JAVA JS-RHINO JS-MONKEY KTLN OCT PAS-GPC PAS-FPC PERL PERL6 PROLOG PYTHON PYTHON3 PY_NBC R RACKET SQLITE SWIFT UNLAMBDA

© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.