#include <bits/stdc++.h>
using namespace std;
const int MAXN = 5050;
const int P = 1e9 + 7;
int dp[MAXN][MAXN];
void add(int &a, int b) {
  a += b;
  if (a >= P) {
    a -= P;
  }
}
void sub(int &a, int b) {
  a -= b;
  if (a < 0) {
    a += P;
  }
}
void mul(int &a, int b) {
  long long ans = (long long)a * b;
  ans %= P;
  a = ans;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  string s, t;
  cin >> s >> t;
  int n = (int)(s).size();
  int m = (int)(t).size();
  for (int j = 0; j <= m; ++j) {
    dp[0][j] = 1;
  }
  for (int i = 0; i < n; ++i) {
    dp[i + 1][0] = 1;
    for (int j = 0; j < m; ++j) {
      dp[i + 1][j + 1] = dp[i + 1][j];
      if (s[i] == t[j]) {
        add(dp[i + 1][j + 1], dp[i][j]);
      }
    }
  }
  int ans = 0;
  for (int i = 0; i < n; ++i) {
    add(ans, dp[i + 1][m]);
    sub(ans, 1);
  }
  cout << ans << endl;
}
