#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod=1e9+7;
int T;
ll n,k;
ll ksm(ll x,ll y){
if(y==0) return 1;
ll tmp=1;
while(y){
if(y&1) tmp=(tmp*x)%mod;
x=(x*x)%mod;
y/=2;
}
return tmp%mod;
}
int main(){
scanf("%d",&T);
while(T--){
scanf("%lld%lld",&n,&k);
ll ans=0,p=1;
for(ll i=1;i<=k;++i){
if(n%2==0){
if(k==i) ans+=p;
else ans=ans+(p*(ksm(ksm(2,k-i),n)))%mod;
ans=ans%mod;
}
ll tmp;
if(n%2) tmp=(ksm(2,n-1)+1)%mod;
else tmp=(ksm(2,n-1)-1)%mod;
p=(p*tmp)%mod;
}
ans=(ans+p)%mod;
printf("%lld\n",ans);
}
return 0;
}
415. Add Strings | 22. Generate Parentheses |
13. Roman to Integer | 2. Add Two Numbers |
515. Find Largest Value in Each Tree Row | 345. Reverse Vowels of a String |
628. Maximum Product of Three Numbers | 1526A - Mean Inequality |
1526B - I Hate 1111 | 1881. Maximum Value after Insertion |
237. Delete Node in a Linked List | 27. Remove Element |
39. Combination Sum | 378. Kth Smallest Element in a Sorted Matrix |
162. Find Peak Element | 1529A - Eshag Loves Big Arrays |
19. Remove Nth Node From End of List | 925. Long Pressed Name |
1051. Height Checker | 695. Max Area of Island |
402. Remove K Digits | 97. Interleaving String |
543. Diameter of Binary Tree | 124. Binary Tree Maximum Path Sum |
1465. Maximum Area of a Piece of Cake After Horizontal and Vertical Cuts | 501A - Contest |
160A- Twins | 752. Open the Lock |
1535A - Fair Playoff | 1538F - Interesting Function |