#include using namespace std; #define ALL(x) x.begin(),x.end() #define rep(i,n) for(int i=0;i<(n);i++) #define debug(v) cout<<#v<<":";for(auto x:v){cout<bool chmax(T &a,const T &b){if(abool chmin(T &a,const T &b){if(b> matplus_mod(vector> a,vector> b){ assert(a.size()==b.size() and a[0].size()==b[0].size()); for(int i=0;i=mod) a[i][j]-=mod; } } return a; } vector> matminus_mod(vector> a,vector> b){ assert(a.size()==b.size() and a[0].size()==b[0].size()); for(int i=0;i> matmul_mod(vector> a,vector> b){ assert(a[0].size()==b.size()); int n=b.size(); vector> ret(a.size(),vector(b[0].size(),0)); for(int i=0;i> matpow_mod(vector> a,ll k){ assert(a.size()==a[0].size()); int n=a.size(); vector> ret(n,vector(n,0)); for(int i=0;i0){ if(k&1) ret=matmul_mod(ret,a); a=matmul_mod(a,a); k>>=1; } return ret; } signed main(){ cin.tie(0); ios::sync_with_stdio(0); ll a,b,n;cin>>a>>b>>n; vector> mat(2,vector(2)); mat[0][0]=a;mat[0][1]=b; mat[1][0]=1;mat[1][1]=0; mat=matpow_mod(mat,n); vector> m0(2,vector(1)); m0[0][0]=1;m0[1][0]=0; auto ans=matmul_mod(mat,m0); cout<