//String Mood - problema cu exponentierea matricii #include using namespace std; const long long MOD = 1e9 + 7; long long sol_HH = 1, sol_HS = 0; long long c_HH = 19, c_HS = 7, c_SH = 6 , c_SS = 20; void update_sol() { long long a = ((sol_HH * c_HH) % MOD + (sol_HS * c_SH) % MOD) % MOD; ///HAPPY - HAPPY long long b = ((sol_HH * c_HS) % MOD + (sol_HS * c_SS) % MOD) % MOD; ///HAPPY - SAD sol_HH = a; sol_HS = b; } void update_current() { long long a = ((c_HH * c_HH) % MOD + (c_HS * c_SH) % MOD ) % MOD; /// HAPPY - HAPPY long long b = ((c_HH * c_HS) % MOD + (c_HS * c_SS) % MOD ) % MOD; /// HAPPY - SAD long long c = ((c_SH * c_HH) % MOD + (c_SS * c_SH) % MOD ) % MOD; /// SAD - HAPPY long long d = ((c_SH * c_HS) % MOD + (c_SS * c_SS) % MOD ) % MOD; /// SAD - SAD c_HH = a; c_HS = b; c_SH = c; c_SS = d; } int main() { unsigned long long n ; cin>>n; while(n!=0) { if(n%2==1) update_sol(); update_current(); n/=2; } cout<