#include <bits/stdc++.h>
using namespace std;
int dp[5001][5001];
int main(int argc, char* argv[]) {
  string s;
  string t;
  cin >> s >> t;
  long long cnt = 0;
  long long modulo = 1000000007;
  memset(dp, 0, sizeof(dp));
  for (int i = 0; i < s.size(); i++) {
    for (int j = 0; j < t.size(); j++) {
      dp[i + 1][j + 1] = dp[i + 1][j] % modulo;
      if (s[i] == t[j]) {
        dp[i + 1][j + 1] += (1 + dp[i][j]) % modulo;
      }
    }
  }
  for (int i = 1; i <= s.size(); i++) {
    cnt += dp[i][t.size()];
    cnt %= modulo;
  }
  cout << cnt;
  return 0;
}
