Загрузка данных


#include <iostream>

using namespace std;

long long potega(long long k, long long n) {
    long long wynik = 1;
    const long long mod = 1000000007;
    k %= mod;
    
    if (k == 0) return 0;

    while (n > 0) {
        if (n % 2 == 1)
            wynik = (wynik * k) % mod;
        k = (k * k) % mod;
        n /= 2;
    }
    return wynik;
}

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    
    int t;
    long long n, k, x, w;
    cin >> t;
    for(int i = 0; i < t; i++){
        cin >> n >> k;
        x = potega(k, n);
        w = x % 1000000007;
        cout << w << "\n";
    }
    return 0;
}