func_code_string: #include <bits/stdc++.h>   const int mod = 1000000007;   using namespace std;   int dp[5009][5009];   char s1[5009], s2[5009];   int main() {     while (scanf( %s%s , s1, s2) == 2) {       memset(dp, 0, sizeof(dp));       int len2 = strlen(s2);       for (int i = 1; s1[i - 1]; i++) {         for (int j = 1; s2[j - 1]; j++) {           if (s1[i - 1] == s2[j - 1]) {             dp[i][j] = (dp[i - 1][j - 1] + dp[i][j - 1] + 1) % mod;           } else             dp[i][j] = dp[i][j - 1];         }       }       int ans = 0;       for (int i = 1; s1[i - 1]; i++) ans = (ans + dp[i][len2]) % mod;       printf( %d n , ans);     }     return 0;   }   