#include #define rep(i,n) for(int i=0;i ; using vec = vector ; using mat = vector; const int INF = 1e9; const int MOD = 1000000007; mat mul(mat &A, mat &B,int mod) { mat C(A.size(),vec(B[0].size())); for(int i=0;i 0){ if(n & 1) B = mul(B,A,mod); A = mul(A,A,mod); n >>= 1; } return B; } int main(){ ll a,b,n; cin >> a >> b >> n; if(n==0){ cout << 0 << endl; return 0; } mat A = {{a,b},{1,0}}; A = pow(A,n-1,MOD); cout << A[0][0] << endl; return 0; }