#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define nl '\n'
inline ll mulmod(ll a, ll b, ll m) {
return (__int128)a * b % m;
}
inline ll powmod(ll a, ll b, ll m) {
ll res = 1;
while (b) {
if (b & 1) res = mulmod(res, a, m);
a = mulmod(a, a, m);
b >>= 1;
}
return res;
}
inline ll numlen(ll x) {
ll c = 0;
do { ++c; x /= 10; } while (x);
return c;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int T;
cin >> T;
while (T--) {
ll x, n, m;
cin >> x >> n >> m;
ll len[64], t[64];
len[0] = powmod(10, numlen(x), m);
t[0] = x % m;
for (int i = 1; i < 63; ++i) {
len[i] = mulmod(len[i-1], len[i-1], m);
t[i] = mulmod(t[i-1], (len[i-1] + 1) % m, m);
}
ll ans = 0;
for (int i = 62; i >= 0; --i)
if ((n >> i) & 1)
ans = (mulmod(ans, len[i], m) + t[i]) % m;
cout << ans << nl;
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGxsID0gbG9uZyBsb25nOwojZGVmaW5lIG5sICdcbicKCmlubGluZSBsbCBtdWxtb2QobGwgYSwgbGwgYiwgbGwgbSkgewogICAgcmV0dXJuIChfX2ludDEyOClhICogYiAlIG07Cn0KCmlubGluZSBsbCBwb3dtb2QobGwgYSwgbGwgYiwgbGwgbSkgewogICAgbGwgcmVzID0gMTsKICAgIHdoaWxlIChiKSB7CiAgICAgICAgaWYgKGIgJiAxKSByZXMgPSBtdWxtb2QocmVzLCBhLCBtKTsKICAgICAgICBhID0gbXVsbW9kKGEsIGEsIG0pOwogICAgICAgIGIgPj49IDE7CiAgICB9CiAgICByZXR1cm4gcmVzOwp9CgppbmxpbmUgbGwgbnVtbGVuKGxsIHgpIHsKICAgIGxsIGMgPSAwOwogICAgZG8geyArK2M7IHggLz0gMTA7IH0gd2hpbGUgKHgpOwogICAgcmV0dXJuIGM7Cn0KCmludCBtYWluKCkgewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTsKCiAgICBpbnQgVDsKICAgIGNpbiA+PiBUOwogICAgd2hpbGUgKFQtLSkgewogICAgICAgIGxsIHgsIG4sIG07CiAgICAgICAgY2luID4+IHggPj4gbiA+PiBtOwogICAgICAgIGxsIGxlbls2NF0sIHRbNjRdOwogICAgICAgIGxlblswXSA9IHBvd21vZCgxMCwgbnVtbGVuKHgpLCBtKTsKICAgICAgICB0WzBdID0geCAlIG07CgogICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgNjM7ICsraSkgewogICAgICAgICAgICBsZW5baV0gPSBtdWxtb2QobGVuW2ktMV0sIGxlbltpLTFdLCBtKTsKICAgICAgICAgICAgdFtpXSA9IG11bG1vZCh0W2ktMV0sIChsZW5baS0xXSArIDEpICUgbSwgbSk7CiAgICAgICAgfQoKICAgICAgICBsbCBhbnMgPSAwOwogICAgICAgIGZvciAoaW50IGkgPSA2MjsgaSA+PSAwOyAtLWkpCiAgICAgICAgICAgIGlmICgobiA+PiBpKSAmIDEpCiAgICAgICAgICAgICAgICBhbnMgPSAobXVsbW9kKGFucywgbGVuW2ldLCBtKSArIHRbaV0pICUgbTsKCiAgICAgICAgY291dCA8PCBhbnMgPDwgbmw7CiAgICB9Cn0K