# include <bits/stdc++.h>

using namespace std;

const int mod = 998244353;

string s;
long long dp[3][3], ndp[3][3];

int main(){
      cin >> s;

      int flag = 0;

      for(int i = 0; i < s.size();i ++){
            if(s[i] != s[0]) flag = 1;
      }

      if(!flag){
            cout << 1;
            return 0;
      }

      if(s.size() <= 4){
            set <string> st;
            st.insert(s);
            while(1){
                  int cnt = st.size();
                  vector <string> v;

                  for(auto i : st){
                        for(int j = 1; j < i.size(); j ++){
                              if(i[j - 1] != i[j]){
                                    if('a' != i[j] && 'a' != i[j - 1]){
                                          string nw = i;
                                          nw[j] = 'a';
                                          nw[j - 1] = 'a';
                                          v.push_back(nw);
                                    }
                                    if('b' != i[j] && 'b' != i[j - 1]){
                                          string nw = i;
                                          nw[j] = 'b';
                                          nw[j - 1] = 'b';
                                          v.push_back(nw);
                                    }
                                    if('c' != i[j] && 'c' != i[j - 1]){
                                          string nw = i;
                                          nw[j] = 'c';
                                          nw[j - 1] = 'c';
                                          v.push_back(nw);
                                    }
                              }
                        }
                  }

                  for(auto i : v)
                        st.insert(i);

                  if(cnt == st.size()) break;
            }
            cout << st.size() << endl;
      } else {
            dp[0][0] = 1;
            dp[1][1] = 1;
            dp[2][2] = 1;
            int n = s.size(), sum = 0;

            for(int i = 0; i < n; i ++){
                  sum += s[i] - 'a';
            }

            sum %= 3;

            for(int i = 1; i < n; i ++){
                  memset(ndp, 0, sizeof(ndp));
                  for(int j = 0; j < 3; j ++){
                        for(int k = 0; k < 3; k ++){
                              for(int l = 0; l < 3; l ++){
                                    if(l != k){
                                          ndp[(j + l) % 3][l] = (ndp[(j + l) % 3][l] + dp[j][k]) % mod;
                                    }
                              }
                        }
                  }
                  for(int j = 0; j < 3; j ++){
                        for(int k = 0; k < 3; k ++){
                              dp[j][k] = ndp[j][k];
                        }
                  }
            }

            long long ans = 1;

            for(int i = 1; i < n; i ++){
                  ans *= 3;
                  ans %= mod;
            }

            for(int i = 0; i < 3; i ++){
                  ans -= dp[sum][i];
                  ans %= mod;
            }

            int same = 0;
            for(int i = 1; i < n; i ++){
                  if(s[i] == s[i - 1]){
                        same = 1;
                  }
            }

            ans += 1 - same;

            ans %= mod;

            if(ans < 0) ans += mod;

            cout << ans << endl;
      }
}


Measured memory_bytes: 640