#include <bits/stdc++.h>
using namespace std;
int movei[] = {0, 0, 1, -1, 1, 1, -1, -1};
int movej[] = {1, -1, 0, 0, 1, -1, 1, -1};
const int MXN = 3e3 + 7;
const int MOD = 998244353;
string s, t;
int dp[MXN][MXN];
int add(int a, int b) { return (a + b) % MOD; }
int solve(int l, int r) {
  if (l > r) return 1;
  int &ret = dp[l][r];
  if (~ret) return ret;
  ret = 0;
  int i = r - l;
  if (l >= t.size() || s[i] == t[l]) ret = solve(l + 1, r);
  if (r >= t.size() || t[r] == s[i]) ret = add(ret, solve(l, r - 1));
  return ret;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  memset(dp, -1, sizeof dp);
  cin >> s >> t;
  int ans = 0;
  for (int i = (int)t.size() - 1; i < s.size(); i++)
    ans = add(ans, solve(0, i));
  cout << ans;
}
