#include <bits/stdc++.h>
using namespace std;
const long long INFLL = 1e18;
const int MAXN = 3000 + 100;
const long long INF = 1e9;
const long long mod1 = 998244353;
const long long mod2 = 2e9 + 11;
int dp[MAXN][MAXN];
long long add(long long a, long long b) {
  a += b;
  if (a >= mod1) return a - mod1;
  return a;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  string s, t;
  cin >> s >> t;
  int n = s.size();
  int m = t.size();
  for (int i = 0; i < m; i++) {
    if (s[0] == t[i]) dp[1][i] += 2;
  }
  for (int i = m; i <= n; i++) dp[1][i] = 2;
  for (int i = 2; i <= n; i++) {
    for (int j = n; j >= 0; j--) {
      int x = i + j - 1;
      if (x >= m || s[i - 1] == t[x]) dp[i][j] = add(dp[i][j], dp[i - 1][j]);
      if (j - 1 >= m || (j > 0 && s[i - 1] == t[j - 1]))
        dp[i][j - 1] = add(dp[i][j - 1], dp[i - 1][j]);
    }
  }
  long long ans = 0;
  for (int i = m; i <= n; i++) {
    ans = add(ans, dp[i][0]);
  }
  cout << ans;
}
