#include <bits/stdc++.h>
using namespace std;
#define faster ios::sync_with_stdio(5+2==2006); cin.tie(0); cout.tie(0);
#define ll long long
#define maxn
struct matrix{
ll a[2][2];
};
ll mod, a, b;
ll mul(ll a, ll b){
ll res=0;
a%=mod;
while (b){
if (b%2){
res+=a;
}
a*=2;
a%=mod;
b/=2;
}
return res;
}
matrix mul_matrix(matrix a, matrix b){
matrix res={0,0,0,0};
for (int i=0;i<2;i++){
for (int j=0;j<2;j++){
for (int k=0;k<2;k++){
res.a[i][j]+=mul(a.a[i][k], b.a[k][j]);
res.a[i][j]%=mod;
}
}
}
return res;
}
matrix powmatrix(matrix a, ll b){
matrix res={1,0,0,1};
while (b){
if (b%2){
res=mul_matrix(res,a);
}
a=mul_matrix(a,a);
b/=2;
}
return res;
}
int main(){
faster;
cin>>a>>b>>mod;
ll n=__gcd(a,b);
matrix f={1,1,1,0};
f=powmatrix(f,n);
cout<<f.a[1][0];
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgZmFzdGVyIGlvczo6c3luY193aXRoX3N0ZGlvKDUrMj09MjAwNik7IGNpbi50aWUoMCk7IGNvdXQudGllKDApOwojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIG1heG4Kc3RydWN0IG1hdHJpeHsKICAgIGxsIGFbMl1bMl07Cn07CmxsIG1vZCwgYSwgYjsKbGwgbXVsKGxsIGEsIGxsIGIpewogICAgbGwgcmVzPTA7CiAgICAgYSU9bW9kOwogICAgd2hpbGUgKGIpewogICAgICAgIGlmIChiJTIpewogICAgICAgICAgICByZXMrPWE7CiAgICAgICAgfQogICAgICAgIGEqPTI7CiAgICAgICAgYSU9bW9kOwogICAgICAgIGIvPTI7CiAgICB9CiAgICByZXR1cm4gcmVzOwp9Cm1hdHJpeCBtdWxfbWF0cml4KG1hdHJpeCBhLCBtYXRyaXggYil7CiAgICBtYXRyaXggcmVzPXswLDAsMCwwfTsKICAgIGZvciAoaW50IGk9MDtpPDI7aSsrKXsKICAgICAgICBmb3IgKGludCBqPTA7ajwyO2orKyl7CiAgICAgICAgICAgIGZvciAoaW50IGs9MDtrPDI7aysrKXsKICAgICAgICAgICAgICAgIHJlcy5hW2ldW2pdKz1tdWwoYS5hW2ldW2tdLCBiLmFba11bal0pOwogICAgICAgICAgICAgICAgcmVzLmFbaV1bal0lPW1vZDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiByZXM7Cn0KbWF0cml4IHBvd21hdHJpeChtYXRyaXggYSwgbGwgYil7CiAgICBtYXRyaXggcmVzPXsxLDAsMCwxfTsKICAgIHdoaWxlIChiKXsKICAgICAgICBpZiAoYiUyKXsKICAgICAgICAgICAgcmVzPW11bF9tYXRyaXgocmVzLGEpOwogICAgICAgIH0KICAgICAgICBhPW11bF9tYXRyaXgoYSxhKTsKICAgICAgICBiLz0yOwogICAgfQogICAgcmV0dXJuIHJlczsKCn0KaW50IG1haW4oKXsKICAgIGZhc3RlcjsKICAgIGNpbj4+YT4+Yj4+bW9kOwogICAgbGwgbj1fX2djZChhLGIpOwogICAgbWF0cml4IGY9ezEsMSwxLDB9OwogICAgZj1wb3dtYXRyaXgoZixuKTsKICAgIGNvdXQ8PGYuYVsxXVswXTsKCgoKICAgIHJldHVybiAwOwp9Cg==