#include <bits/stdc++.h>
using namespace std;
const int maxn = 5e3 + 10;
const int mod = 1e9 + 7;
int d1[maxn][maxn];
int d2[maxn][maxn];
int main() {
  string s, t;
  cin >> s >> t;
  s = "." + s;
  t = "." + t;
  swap(s, t);
  for (int i = 1; i < s.size(); i++)
    for (int j = 1; j < t.size(); j++) {
      d2[i][j] = d2[i - 1][j];
      if (t[j] == s[i]) d2[i][j] += d2[i - 1][j - 1] + 1;
      d2[i][j] %= mod;
    }
  for (int i = 1; i < s.size(); i++)
    for (int j = 1; j < t.size(); j++) {
      d1[i][j] = d2[i][j] + d1[i][j - 1];
      d1[i][j] %= mod;
    }
  cout << d1[s.size() - 1][t.size() - 1] << endl;
}
