#include <bits/stdc++.h>
using namespace std;
long long powM(long long a, long long b, long long mode)
{
long long sum = 1;
a = a % mode;
while (b > 0) {
if (b % 2 == 1) //判断是否是奇数,是奇数的话将多出来的数事先乘如sum
sum = (sum * a) % mode;
b /= 2;
a = (a * a) % mode;// 不断的两两合并再取模,减小a和b的规模
}
return sum;
}
int main () {
long long n, m, k, x;
cin >> n >> m >> k >> x;
cout << (m * powM(10, k, n) + x) % n << endl;
}
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const long long MODE = 100000007;
long long powM(long long a, long long b, long long mode)
{
long long sum = 1;
a %= mode;
while (b) {
if (b & 1) //判断是否是奇数,是奇数的话将多出来的数事先乘如sum
sum = (sum * a) % mode;
b >>= 1;
a = (a * a) % mode;// 不断的两两合并再取模,减小a和b的规模
}
return sum;
}
int main () {
int N;
cin >> N;
while (N--) {
ll flag = 1;
ll n, k;
cin >> n >> k;
if (n & 1)
flag = - 1;
cout << (powM(k - 1, n, MODE) % MODE + (flag * (k - 1)) % MODE) % MODE << endl;
}
}
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
long long powM(long long a, long long b, long long mode)
{
long long sum = 1;
a %= mode;
while (b) {
if (b & 1) //判断是否是奇数,是奇数的话将多出来的数事先乘如sum
sum = (sum * a) % mode;
b >>= 1;
a = (a * a) % mode;// 不断的两两合并再取模,减小a和b的规模
}
return sum;
}
int main () {
ll a, b, c, d, e;
cin >> a >> b >> c >> d >> e;
ll f = powM(a, c * d, e) % e;
ll g = powM(b, c * d, e) % e;
cout << (f * g) % e << endl;
}