// #define _GLIBCXX_DEBUG // for STL debug (optional) #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define debug(...) fprintf(stderr, __VA_ARGS__) #define int long long int template void chmax(T &a, T b) {a = max(a, b);} template void chmin(T &a, T b) {a = min(a, b);} template void chadd(T &a, T b) {a = a + b;} typedef pair pii; typedef long long ll; int dx[] = {0, 0, 1, -1}; int dy[] = {1, -1, 0, 0}; const ll INF = 1001001001001001LL; const ll MOD = 1000000007LL; int mod_pow(int n, int k, int mod) { int res = 1; for(; k>0; k>>=1) { if(k & 1) (res *= n) %= mod; (n *= n) %= mod; } return res; } int solve(string s, int mod) { int ans = 0; int N = s.length(); // 1 桁から N-1 桁までの回文数 for(int i=1; i> s; const int MOD1 = 1000000000LL; const int MOD2 = 1000000007LL; cout << solve(s, MOD1) << endl << solve(s, MOD2) << endl; return 0; }