func_code_string: #include <bits/stdc++.h>   using namespace std;   namespace myrand {   mt19937 mt(chrono::system_clock::now().time_since_epoch() /              chrono::microseconds(1));   long long Int(long long l, long long r) {     return uniform_int_distribution<long long>(l, r)(mt);   }   }  // namespace myrand   using namespace myrand;   auto ss = chrono::system_clock::now();   double remain_time() {     auto en = chrono::system_clock::now();     return (chrono::duration_cast<chrono::nanoseconds>(en - ss).count() * 1e-9);   }   long long cnt;   long long dp[3001][3001];   const long long mod = 998244353;   void solve(string s, string t) {     int n = s.size();     int m = t.size();     for (int i = 0; i <= n; i++) dp[i][i] = 1;     for (int len = 1; len <= n; len++)       for (int i = 0; i + len <= n; i++) {         int j = i + len;         if (i >= m || s[len - 1] == t[i]) dp[i][j] += dp[i + 1][j];         if (j > m || s[len - 1] == t[j - 1]) dp[i][j] += dp[i][j - 1];         dp[i][j] %= mod;       }     for (int j = m; j <= n; j++) cnt = (cnt + dp[0][j]) % mod;     cout << cnt;   }   int main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     string s, t;     cin >> s;     cin >> t;     solve(s, t);     return 0;   }   