#include #include #include #include using namespace std; using mint = atcoder::modint998244353; mint fact(int n) { mint ret = 1; for (int i = 1; i <= n; ++i) ret *= i; return ret; } // sはtを部分列として含むか bool contain(const string& s, const string& t) { int m = t.length(); int i = 0; for (auto c : s) { if (i < m && c == t[i]) ++i; } return i == m; } void solve() { int n; string s; cin >> n >> s; if (contain(s, "ABC") || contain(s, "BCA") || contain(s, "CAB")) { auto ans = fact(n); for (char c : "ABC") { // null文字も入るが、0個なので気にしない ans /= fact(count(s.begin(), s.end(), c)); } ans -= n; cout << ans.val() << "\n"; } else { cout << "1\n"; } } int main() { cin.tie(nullptr); ios::sync_with_stdio(false); solve(); return 0; }