eolymp
bolt
Try our new interface for solving problems

ABC

Дано рядок $s$ довжини $n$, який складається з символів <<\t{a}>>, <<\t{b}>> та <<\t{c}>>. Ви можете за одну операцію вибрати будь-яку позицію $i$ ($1 \leq i < n$), де символи $s_i$ та $s_{i+1}$ різні, взяти ці символи та замінити кожен з них на символ, який відрізняється від них (але лише серед <<\t{abc}>>). Наприклад, якщо є рядок <<\t{abc}>>, то, якщо вибрати $i=1$, то символи <<\t{ab}>> можна буде замінити на символ <<\t{c}>>, тому рядок стане <<\t{ccc}>>. Ви можете виконати цю операцію будь-яку кількість разів (навіть нуль). Знайдіть кількість різних рядків, які ви можете отримати, за модулем $998244353$. \InputFile Перший рядок містить рядок $s$ довжини $n$ ($2 \leq n \leq 2 \cdot 10^5$). Рядок складається з символів <<\t{a}>>, <<\t{b}>> та <<\t{c}>>. \OutputFile Знайдіть відповідь за модулем $998244353$.
Time limit 1 second
Memory limit 256 MiB
Input example #1
abc
Output example #1
3
Input example #2
abbac
Output example #2
65
Input example #3
babacabac
Output example #3
6310
Input example #4
ababacbcacbacacbcbbcbbacbaccacbacbacba
Output example #4
148010497
Author Anton Tsypko