func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 3007;   const int M = 998244353;   int n, m, dp[N][N];   string s, t;   bool matches(int i, char c) {     if (i > m)       return true;     else       return t[i - 1] == c;   }   int main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cin >> s >> t;     n = s.size();     m = t.size();     for (int i = 1; i <= n + 1; i++) dp[i][i - 1] = 1;     for (int d = 1; d <= n; d++) {       char c = s[d - 1];       for (int i = 1, j = d; j <= n; i++, j++) {         if (matches(i, c)) {           dp[i][j] = (dp[i][j] + dp[i + 1][j]) % M;         }         if (matches(j, c)) {           dp[i][j] = (dp[i][j] + dp[i][j - 1]) % M;         }       }     }     int ans = 0;     for (int i = m; i <= n; i++) {       ans = (ans + dp[1][i]) % M;     }     cout << ans <<   n ;     return 0;   }   