#agc060a. [agc060_a]No Majority

[agc060_a]No Majority

Problem Statement

A string xx consisting of lowercase English letters is said to be good if and only if the following condition is satisfied.

  • Every (contiguous) substring of xx whose length is 22 or greater satisfies the following:
    • no character occupies the majority of that substring.

For example, acbca is not good because c occupies the majority of the substring cbc.

You are given a string SS of length NN consisting of lowercase English letters and ?. You want to replace each ? with a lowercase English letter of your choice to make SS a good string. Find the number of ways to make SS a good string, modulo 998244353998244353.

Constraints

  • 2leqNleq50002 \\leq N \\leq 5000
  • SS is a string of length NN consisting of lowercase English letters and ?.

Input

The input is given from Standard Input in the following format:

NN SS

Output

Print the answer.


Sample Input 1

3
a?b

Sample Output 1

24

Every way other than aab and abb satisfies the condition.


Sample Input 2

3
a?a

Sample Output 2

0

Sample Input 3

20
ugsyakganihodnwmktgi

Sample Output 3

1

Sample Input 4

20
??a???h?m?y?ts???tl?

Sample Output 4

444225229