/* -*- coding: utf-8 -*- * * 793.cc: No.793 うし数列 2 - yukicoder */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; /* constant */ const int MOD = 1000000007; /* typedef */ typedef long long ll; /* global variables */ /* subroutines */ /* main */ int main() { ll n; scanf("%lld", &n); ll d3 = 3, d10 = 10, sum = 0, t = 1; while (n > 0) { if (n & 1) { sum = (sum * d10 % MOD + d3) % MOD; t = t * d10 % MOD; } d3 = (d10 + 1) * d3 % MOD; d10 = d10 * d10 % MOD; n >>= 1; } printf("%lld\n", (sum + t) % MOD); return 0; }