POWER (DHBB 2021 T.Thử)

View as PDF

Points: 300 (p) Time limit: 1.0s Memory limit: 256M Input: stdin Output: stdout

Đếm số cách chia các số nguyên dương từ 1 đến \(n\) vào hai nhóm sao cho mọi cặp hai số khác nhau thuộc cùng một
nhóm có tổng không thuộc tập \(k\) số cho trước. \(k\) số này là luỹ thừa của 2.

Input

  • Gồm không quá 10000 test.
    • Mỗi test bắt đầu bằng một dòng chứa 2 số nguyên \(n\)\(k\) (\(1 \le n \le 10^{18}; 1 \le k \le 61\)).
    • Dòng thứ hai chứa \(k\) số nguyên dương là luỹ thừa của 2 và không vượt quá \(2n\).
    • Dữ liệu kết thúc bằng một dòng chứa hai số 0.

Output

  • Với mỗi test, ghi ra số cách phân nhóm theo \(modulo\ 1000000007\).

Example

Test 1

Input
5 1 
1 
4 2 
4 2 
0 0 
Output
32  
8

Comments

There are no comments at the moment.