#define _GLIBCXX_DEBUG #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define ALL(v) v.begin(), v.end() typedef long long ll; templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b using namespace std; #define MOD 1000000007 vector> matrixmul(ll m,vector> a,vector> b){ vector> c(m,vector(m,0)); rep(i,m){ rep(j,m){ rep(k,m) c[i][j]=(c[i][j]+a[i][k]*b[k][j]%MOD)%MOD; } } return c; } vector> matrixpow(ll m,vector> vec,ll n){ vector> ans(m,vector(m,0)); rep(i,m) ans[i][i]=1; while(n){ if(n&1) ans=matrixmul(m,ans,vec); vec=matrixmul(m,vec,vec); n>>=1; } return ans; } int main(){ ll n; cin>>n; vector> mat(6,vector(6)); rep(i,6) mat[0][i]=166666668; rep(i,5) mat[i+1][i]=1; vector> pmat=matrixpow(6,mat,n); cout<