#include #define int long long using namespace std; const int mod=1e9+7; template struct Matrix { vector> A; Matrix(){} Matrix(int n,int m):A(n,vector(m,0)){} Matrix(int n):A(n,vector(n,0)){}; int height() const{ return (A.size()); } int width() const{ return (A[0].size()); } inline const vector &operator[](int k) const{ return (A.at(k)); } inline vector &operator[](int k){ return (A.at(k)); } static Matrix I(int n){ Matrix mat(n); for(int i=0;i> C(n,vector(m,0)); for(int i=0;i0){ if(k&1) B*=*this; *this*=*this; k>>=1; } A.swap(B.A); return (*this); } Matrix operator+(const Matrix &B) const{ return (Matrix(*this)+=B); } Matrix operator-(const Matrix &B) const{ return (Matrix(*this)-=B); } Matrix operator*(const Matrix &B) const{ return (Matrix(*this)*=B); } Matrix operator^(const int k) const{ return (Matrix(*this)^=k); } }; signed main() { cin.tie(0); ios::sync_with_stdio(false); int a,b,n; cin>>a>>b>>n; Matrix A(2); A[0][0]=a; A[0][1]=b; A[1][0]=1; A[1][1]=0; A^=n; cout<