#include <bits/stdc++.h>
using namespace std;
char s[5001], t[5001];
long long int dp[5001][5001];
long long int mod = 1e9 + 7;
int main() {
  int i, j, x, y;
  scanf("%s%s", s, t);
  x = strlen(s);
  y = strlen(t);
  memset(dp, 0, sizeof(dp));
  for (i = 1; i <= x; i++) {
    for (j = 1; j <= y; j++) {
      dp[i][j] =
          (dp[i][j - 1] + (dp[i - 1][j - 1] + 1) * (s[i - 1] == t[j - 1])) %
          mod;
    }
  }
  long long int ans = 0;
  for (i = 1; i <= x; i++) {
    ans = (ans + dp[i][y]) % mod;
  }
  printf("%lld\n", ans % mod);
  return 0;
}
