#include <bits/stdc++.h>
using namespace std;
int dbg = 0;
const int MAX = 3001;
const long long mod = 998244353;
int n, m;
string s, t;
long long dp[MAX][MAX];
long long mod_add(long long x, long long y) {
  return x + y >= mod ? x + y - mod : x + y;
}
void solve() {
  cin >> s >> t;
  n = ((int)(s).size()), m = ((int)(t).size());
  for (int i = 0; i < MAX; i++) fill(dp[i], dp[i] + MAX, 0);
  for (int i = 0; i < n + 1; i++) dp[i][i] = 1;
  for (int len = 1; len <= n; len++) {
    char ch = s[len - 1];
    for (int i = 0; i + len <= n; i++) {
      int j = i + len;
      if (i >= m || t[i] == ch) dp[i][j] = mod_add(dp[i][j], dp[i + 1][j]);
      if (j > m || t[j - 1] == ch) dp[i][j] = mod_add(dp[i][j], dp[i][j - 1]);
    }
  }
  long long ans = 0;
  for (int i = m; i < n + 1; i++) ans = mod_add(ans, dp[0][i]);
  printf("%lld\n", ans);
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  solve();
  return 0;
}
