#include<bits/stdc++.h>
#define file "remainder"
using namespace std;
#define int long long
#define pii pair<int,int>
#define vi vector<int>
#define pb push_back
#define mp make_pair
#define X first
#define Y second
#define vii vector<vector<int>>
const int N=1e6+5;
const int NN=1e3+9;
const int MOD=1e9+7;
const int INF=1e18;
int x, n, m;
vii dp(3, vector<int> (3, 0));
int nhan(int a, int b) {
if (b==0) return 0;
if (b==1) return a;
int tmp=nhan(a,b/2)%m;
if (b&1)
return (((tmp+tmp)%m)+a)%m;
return (tmp+tmp)%m;
}
vii mul(const vii& a, const vii& b) {
vii res(3, vector<int> (3, 0));
for (int i=1;i<=2;i++)
for (int j=1;j<=2;j++)
for (int k=1;k<=2;k++) {
res[i][j]+=(nhan(a[i][k],b[k][j]))%m;
res[i][j]%=m;
}
return res;
}
void inkq(const vii& a) {
for (int i=1;i<=2;i++) {
for (int j=1;j<=2;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
}
vii pow(const vii& a, int b) {
if (b==1) return a;
vii tmp=pow(a,b/2);
if (b&1)
return mul(mul(tmp,tmp),a);
return mul(tmp,tmp);
}
int cc(int x) {
int res=1;
int dem=0;
while (x>0) {
dem++;
x/=10;
}
for (int i=1;i<=dem;i++) {
res*=10;
res%=m;
}
return res;
}
void process() {
cin>>x>>n>>m;
vii t(3, vector<int> (3, 0));
t[1][1]=cc(x);
t[1][2]=x%m;
t[2][1]=0;
t[2][2]=1;
dp=pow(t,n);
// inkq(dp);
cout<<dp[1][2];
}
signed main() {
cin.tie(0)->sync_with_stdio(0);
// freopen(file".inp","r",stdin);
// freopen(file".out","w",stdout);
int t=1;
// cin>>t;
while (t--)
process();
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBmaWxlICJyZW1haW5kZXIiCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBpbnQgbG9uZyBsb25nCiNkZWZpbmUgcGlpIHBhaXI8aW50LGludD4KI2RlZmluZSB2aSB2ZWN0b3I8aW50PgojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIG1wIG1ha2VfcGFpcgojZGVmaW5lIFggZmlyc3QKI2RlZmluZSBZIHNlY29uZAojZGVmaW5lIHZpaSB2ZWN0b3I8dmVjdG9yPGludD4+Cgpjb25zdCBpbnQgTj0xZTYrNTsKY29uc3QgaW50IE5OPTFlMys5Owpjb25zdCBpbnQgTU9EPTFlOSs3Owpjb25zdCBpbnQgSU5GPTFlMTg7CgppbnQgeCwgbiwgbTsKdmlpIGRwKDMsIHZlY3RvcjxpbnQ+ICgzLCAwKSk7CgppbnQgbmhhbihpbnQgYSwgaW50IGIpIHsKICAgIGlmIChiPT0wKSByZXR1cm4gMDsKICAgIGlmIChiPT0xKSByZXR1cm4gYTsKICAgIGludCB0bXA9bmhhbihhLGIvMiklbTsKICAgIGlmIChiJjEpCiAgICAgICAgcmV0dXJuICgoKHRtcCt0bXApJW0pK2EpJW07CiAgICByZXR1cm4gKHRtcCt0bXApJW07Cn0KCnZpaSBtdWwoY29uc3QgdmlpJiBhLCBjb25zdCB2aWkmIGIpIHsKICAgIHZpaSByZXMoMywgdmVjdG9yPGludD4gKDMsIDApKTsKICAgIGZvciAoaW50IGk9MTtpPD0yO2krKykKICAgIGZvciAoaW50IGo9MTtqPD0yO2orKykKICAgIGZvciAoaW50IGs9MTtrPD0yO2srKykgewogICAgICAgIHJlc1tpXVtqXSs9KG5oYW4oYVtpXVtrXSxiW2tdW2pdKSklbTsKICAgICAgICByZXNbaV1bal0lPW07CiAgICB9CiAgICByZXR1cm4gcmVzOwp9Cgp2b2lkIGlua3EoY29uc3QgdmlpJiBhKSB7CiAgICBmb3IgKGludCBpPTE7aTw9MjtpKyspIHsKICAgICAgICBmb3IgKGludCBqPTE7ajw9MjtqKyspCiAgICAgICAgICAgIGNvdXQ8PGFbaV1bal08PCIgIjsKICAgICAgICBjb3V0PDxlbmRsOwogICAgfQp9Cgp2aWkgcG93KGNvbnN0IHZpaSYgYSwgaW50IGIpIHsKICAgIGlmIChiPT0xKSByZXR1cm4gYTsKICAgIHZpaSB0bXA9cG93KGEsYi8yKTsKICAgIGlmIChiJjEpCiAgICAgICAgcmV0dXJuIG11bChtdWwodG1wLHRtcCksYSk7CiAgICByZXR1cm4gbXVsKHRtcCx0bXApOwp9CgppbnQgY2MoaW50IHgpIHsKICAgIGludCByZXM9MTsKICAgIGludCBkZW09MDsKICAgIHdoaWxlICh4PjApIHsKICAgICAgICBkZW0rKzsKICAgICAgICB4Lz0xMDsKICAgIH0KICAgIGZvciAoaW50IGk9MTtpPD1kZW07aSsrKSB7CiAgICAgICAgcmVzKj0xMDsKICAgICAgICByZXMlPW07CiAgICB9CiAgICByZXR1cm4gcmVzOwp9Cgp2b2lkIHByb2Nlc3MoKSB7CiAgICBjaW4+Png+Pm4+Pm07CiAgICB2aWkgdCgzLCB2ZWN0b3I8aW50PiAoMywgMCkpOwogICAgdFsxXVsxXT1jYyh4KTsKICAgIHRbMV1bMl09eCVtOwogICAgdFsyXVsxXT0wOwogICAgdFsyXVsyXT0xOwogICAgZHA9cG93KHQsbik7Ci8vICAgIGlua3EoZHApOwogICAgY291dDw8ZHBbMV1bMl07Cn0KCnNpZ25lZCBtYWluKCkgewogICAgY2luLnRpZSgwKS0+c3luY193aXRoX3N0ZGlvKDApOwogICAgLy8gZnJlb3BlbihmaWxlIi5pbnAiLCJyIixzdGRpbik7CiAgICAvLyBmcmVvcGVuKGZpbGUiLm91dCIsInciLHN0ZG91dCk7CiAgICBpbnQgdD0xOwovLyAgICBjaW4+PnQ7CiAgICB3aGlsZSAodC0tKQogICAgICAgIHByb2Nlc3MoKTsKICAgIHJldHVybiAwOwp9Cg==