#include #include #include using namespace std; const long long MOD = 1000000007; vector> matrix_multiplication(vector> A, vector> B){ int N = A.size(); vector> C(N, vector(N, 0)); for (int i = 0; i < N; i++){ for (int j = 0; j < N; j++){ for (int k = 0; k < N; k++){ C[i][k] += A[i][j] * B[j][k]; C[i][k] %= MOD; } } } return C; } vector> matrix_exponentiation(vector> A, long long x){ int N = A.size(); vector> ans(N, vector(N, 0)); for (int i = 0; i < N; i++){ ans[i][i] = 1; } while (x > 0){ if (x % 2 == 1){ ans = matrix_multiplication(ans, A); } A = matrix_multiplication(A, A); x /= 2; } return ans; } int main(){ long long N; cin >> N; vector> M = {{100, 0}, {1, 1}}; M = matrix_exponentiation(M, N); long long ans1 = M[1][0]; cout << ans1 << endl; long long ans2 = 0; if (N % 11 != 0){ ans2 = 1; for (int i = 0; i < N % 11 - 1; i++){ ans2 = ans2 * 100 + 1; } } cout << ans2 << endl; }