#include "bits/stdc++.h"
using namespace std;
#define ll long long
#define endl '\n'
#define fi first
#define se second
#define vall(a) (a).begin(), (a).end()
#define sze(a) (int)a.size()
#define pii pair<int, int>
#define pb push_back
#define pf push_front
const signed N = 5e6 + 5;
const ll oo = 1e18;
ll a, b, m, check, t;
ll binpow(ll a, ll b, ll mod) {
ll res = 1;
a %= mod;
while(b > 0) {
if (b & 1) res = (res * a) % mod;
a = (a * a) % mod;
b >>= 1ll;
}
return res % mod;
}
ll fcycle() {
ll pre = 0, cur = 1;
for (int i = 1; i <= m * m; ++i) {
ll temp = cur;
cur = (pre + cur) % m; pre = temp;
if (cur == 1 && pre == 0) return i;
}
return 0;
}
ll f[N];
void output() {
ll du = fcycle();
f[1] = 1;
for (int i = 2; i <= du; ++i) f[i] = (f[i - 1] + f[i - 2]) % m;
ll gcd = __gcd(a, b) % du;
cout << f[binpow(a, b, du)] << " " << f[gcd];
return;
}
void input() {
cin >> a >> b >> m;
output();
return;
}
signed main () {
if(fopen("", "r")) {
freopen("", "r", stdin);
freopen("", "w", stdout);
}
ios_base::sync_with_stdio(false);
cin.tie(nullptr); cout.tie(nullptr);
cin >> t;
while(t--) input();
return 0;
}
I2luY2x1ZGUgImJpdHMvc3RkYysrLmgiCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGVuZGwgJ1xuJwojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgdmFsbChhKSAoYSkuYmVnaW4oKSwgKGEpLmVuZCgpCiNkZWZpbmUgc3plKGEpIChpbnQpYS5zaXplKCkKI2RlZmluZSBwaWkgcGFpcjxpbnQsIGludD4KCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgcGYgcHVzaF9mcm9udAoKCmNvbnN0IHNpZ25lZCBOID0gNWU2ICsgNTsKY29uc3QgbGwgb28gPSAxZTE4OwoKbGwgYSwgYiwgbSwgY2hlY2ssIHQ7CgpsbCBiaW5wb3cobGwgYSwgbGwgYiwgbGwgbW9kKSB7CglsbCByZXMgPSAxOwogICAgYSAlPSBtb2Q7Cgl3aGlsZShiID4gMCkgewoJCWlmIChiICYgMSkgcmVzID0gKHJlcyAqIGEpICUgbW9kOwoJCWEgPSAoYSAqIGEpICUgbW9kOwoJCWIgPj49IDFsbDsKCX0KCXJldHVybiByZXMgJSBtb2Q7Cn0KbGwgZmN5Y2xlKCkgewoJbGwgcHJlID0gMCwgY3VyID0gMTsKCWZvciAoaW50IGkgPSAxOyBpIDw9IG0gKiBtOyArK2kpIHsKCQlsbCB0ZW1wID0gY3VyOwoJCWN1ciA9IChwcmUgKyBjdXIpICUgbTsgcHJlID0gdGVtcDsgCgkJaWYgKGN1ciA9PSAxICYmIHByZSA9PSAwKSByZXR1cm4gaTsKCX0KCXJldHVybiAwOwp9CgpsbCBmW05dOwp2b2lkIG91dHB1dCgpIHsKCWxsIGR1ID0gZmN5Y2xlKCk7CglmWzFdID0gMTsKCWZvciAoaW50IGkgPSAyOyBpIDw9IGR1OyArK2kpIGZbaV0gPSAoZltpIC0gMV0gKyBmW2kgLSAyXSkgJSBtOwoJCglsbCBnY2QgPSBfX2djZChhLCBiKSAlIGR1OwoJY291dCA8PCBmW2JpbnBvdyhhLCBiLCBkdSldIDw8ICIgIiA8PCBmW2djZF07IAogICAgcmV0dXJuOwp9Cgp2b2lkIGlucHV0KCkgewoJY2luID4+IGEgPj4gYiA+PiBtOwogICAgb3V0cHV0KCk7CiAgICByZXR1cm47Cn0KCnNpZ25lZCBtYWluICgpIHsKICAgIGlmKGZvcGVuKCIiLCAiciIpKSB7CiAgICAgICAgZnJlb3BlbigiIiwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3BlbigiIiwgInciLCBzdGRvdXQpOwogICAgfQogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOyBjb3V0LnRpZShudWxscHRyKTsKICAgIGNpbiA+PiB0OwogICAgd2hpbGUodC0tKSBpbnB1dCgpOwogICAgcmV0dXJuIDA7Cn0K