#include <bits/stdc++.h>
const int mod = 1e9+7;
long long fp(long long b, int e){
if(e) return fp(b*b%mod, e>>1) * (e&1?b:1) % mod;
return 1;
}
signed main() {
std::ios_base::sync_with_stdio(false); std::cin.tie(nullptr);
int t;
std::cin >> t;
while(t--){
int n, q;
std::cin >> n >> q;
while(q--){
int x;
std::cin >> x;
long long p = 3;
long long ans = 2 * x * fp(p, mod-2) % mod;
for(int y =x+1; y <=n; ++y){
p = p * 3 % mod;
ans = (ans + y * fp(p, mod-2) % mod) % mod;
}
p = 3;
for(int y=x-1; y; --y){
p = p * 3 % mod;
ans = (ans + y * fp(p, mod-2) % mod) % mod;
}
std::cout << ans << '\n';
}
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CmNvbnN0IGludCBtb2QgPSAxZTkrNzsKbG9uZyBsb25nIGZwKGxvbmcgbG9uZyBiLCBpbnQgZSl7CiAgICBpZihlKSByZXR1cm4gZnAoYipiJW1vZCwgZT4+MSkgKiAoZSYxP2I6MSkgJSBtb2Q7CiAgICByZXR1cm4gMTsKfQpzaWduZWQgbWFpbigpIHsKICAgIHN0ZDo6aW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7IHN0ZDo6Y2luLnRpZShudWxscHRyKTsKICAgIGludCB0OwogICAgc3RkOjpjaW4gPj4gdDsKICAgIHdoaWxlKHQtLSl7CiAgICAgICAgaW50IG4sIHE7CiAgICAgICAgc3RkOjpjaW4gPj4gbiA+PiBxOwogICAgICAgIHdoaWxlKHEtLSl7CiAgICAgICAgICAgIGludCB4OwogICAgICAgICAgICBzdGQ6OmNpbiA+PiB4OwogICAgICAgICAgICBsb25nIGxvbmcgcCA9IDM7CiAgICAgICAgICAgIGxvbmcgbG9uZyBhbnMgPSAyICogeCAqIGZwKHAsIG1vZC0yKSAlIG1vZDsKICAgICAgICAgICAgZm9yKGludCB5ID14KzE7IHkgPD1uOyArK3kpewogICAgICAgICAgICAgICAgcCA9IHAgKiAzICUgbW9kOwogICAgICAgICAgICAgICAgYW5zID0gKGFucyArIHkgKiBmcChwLCBtb2QtMikgJSBtb2QpICUgbW9kOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHAgPSAzOwogICAgICAgICAgICBmb3IoaW50IHk9eC0xOyB5OyAtLXkpewogICAgICAgICAgICAgICAgcCA9IHAgKiAzICUgbW9kOwogICAgICAgICAgICAgICAgYW5zID0gKGFucyArIHkgKiBmcChwLCBtb2QtMikgJSBtb2QpICUgbW9kOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHN0ZDo6Y291dCA8PCBhbnMgPDwgJ1xuJzsKICAgICAgICB9CiAgICB9Cn0=