#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