func_code_string: #include <bits/stdc++.h>   using namespace std;   template <typename T>   void print1d(vector<T> &a) {     for (long long int i = 0; i < a.size(); i++) {       cout << a[i] <<    ;     }     cout << endl;   }   vector<long long int> divisor(long long int n) {     vector<long long int> a;     for (long long int i = 1; i * i <= n; i++) {       if (n % i == 0) {         if (n / i == i)           a.push_back(i);         else {           a.push_back(i);           a.push_back(n / i);         }       }     }     return a;   }   bool sortsecond(const pair<long long int, long long int> &a,                   const pair<long long int, long long int> &b) {     return a.second < b.second;   }   bool isPrime(long long int n) {     for (long long int i = 2; i * i <= n; i++) {       if (n % i == 0) return false;     }     return true;   }   vector<string> split_string(const string &s, const string &delimiter) {     vector<string> token;     string ans;     size_t end_point, start_point = 0, delim_length = delimiter.length();     while ((end_point = s.find(delimiter, start_point)) != string::npos) {       ans = s.substr(start_point, end_point - start_point);       start_point = end_point + delim_length;       token.push_back(ans);     }     token.push_back(s.substr(start_point));     return token;   }   bool is_vowel(const char &a) {     switch (a) {       case  a :       case  e :       case  i :       case  o :       case  u :       case  y :       case  A :       case  E :       case  I :       case  O :       case  U :         return true;         break;       default:         return false;         break;     }   }   bool sortstring(const string &a, const string &b) {     return a.length() < b.length();   }   void convert(string &s) {     for (long long int i = 0; i < s.length(); i++) {       if (s[i] >=  A  && s[i] <=  Z ) s[i] = s[i] -  A  +  a ;       if (s[i] ==  o )         s[i] =  0 ;       else if (s[i] ==  l  || s[i] ==  i )         s[i] =  1 ;     }   }   const long long int K = 998244353;   void solve() {     long long int n;     cin >> n;     string s;     cin >> s;     long long int fir = 0;     long long int las = 0;     char c = s[0];     long long int k = 0;     for (long long int i = 0; i < n; i++) {       k = i;       if (s[i] == c)         fir++;       else {         break;       }     }     c = s[n - 1];     for (long long int i = n - 1; i >= k; i--) {       if (s[i] == c)         las++;       else         break;     }     if (s[0] == s[n - 1])       cout << ((las + 1) * (fir + 1)) % K << endl;     else       cout << (fir + las + 1) % K << endl;     return;   }   int32_t main() {     ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);     ;     solve();     return 0;   }   