EASY PROBLEM
#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
typedef long long LL;
const int maxn = 111111;
const int mod = (int) (1e9 + 7);
char s[maxn];
int num[maxn];
LL POW(LL a, LL b) {
LL ans = 1, t = a;
while (b) {
if (b & 1)
ans = ans * t % mod;
t = t * t % mod;
b >>= 1;
}
return ans;
}
LL solve(LL n, LL k) {
if (k > n)
return 0;
if (k == n)
return 1;
if (k == n - 1)
return 2;
LL a = POW(2, n - k - 2), b = POW(2, n - k);
LL ans = a * (n - k - 1) + b;
ans = (ans % mod + mod) % mod;
return ans;
}
int main() {
ios::sync_with_stdio(false);
int T;
cin >> T;
while (T--) {
LL n, k;
cin >> n >> k;
cout << solve(n, k) << endl;
}
return 0;
}