int main() { long long n,k; scanf("%lld%lld",&n,&k); while(n) { long long a,b,c,d,ans; b=modexpo(n,k,10000007); a=(2*modexpo(n-1,k,10000007))%10000007; d=modexpo(n,n,10000007); c=(2*modexpo(n-1,n-1,10000007))%10000007; ans=((a+b)%10000007+(c+d)%10000007)%10000007; printf("%lld\n",ans); scanf("%lld%lld",&n,&k); } return 0; }
int main() { long long int n,k; scanf("%lld%lld",&n,&k); while(n!=0||k!=0) { //Z(n) + Z(n-1) – 2*Z(n-2) = 2*(n-1)^k + n^k + 2*(n-1)^(n-1) + n^n int a,b,c,d,ans; b=modexpo(n,k,10000007); a=(2*modexpo(n-1,k,10000007))%10000007; d=modexpo(n,n,10000007); c=(2*modexpo(n-1,n-1,10000007))%10000007; ans=((a+b)%10000007+(c+d)%10000007)%10000007; printf("%d\n",ans); scanf("%lld%lld",&n,&k); } return 0; }
main() { short int t; int a,b,i; scanf("%hd",&t); while(t--) { scanf("%d%d",&a,&b); printf("%d\n",modexpo(a,b)); } return 0; }
main() { long long a,m,r; char arr[250]; short t,i,l; double s; scanf("%hd",&t); while(t--) { scanf("%lld%s%lld",&a,arr,&m); l=0;i=strlen(arr)-1;s=0; while(i>=0) { s=s+(arr[i]-'0')*pow(3,l);; i--;l++; } r=modexpo(a%m,s,m); printf("%lld\n",r); } return 0; }