CF1426F Number of Subsequences

Description

You are given a string $ s $ consisting of lowercase Latin letters "a", "b" and "c" and question marks "?". Let the number of question marks in the string $ s $ be $ k $ . Let's replace each question mark with one of the letters "a", "b" and "c". Here we can obtain all $ 3^{k} $ possible strings consisting only of letters "a", "b" and "c". For example, if $ s = $ "ac?b?c" then we can obtain the following strings: $ [ $ "acabac", "acabbc", "acabcc", "acbbac", "acbbbc", "acbbcc", "accbac", "accbbc", "accbcc" $ ] $ . Your task is to count the total number of subsequences "abc" in all resulting strings. Since the answer can be very large, print it modulo $ 10^{9} + 7 $ . A subsequence of the string $ t $ is such a sequence that can be derived from the string $ t $ after removing some (possibly, zero) number of letters without changing the order of remaining letters. For example, the string "baacbc" contains two subsequences "abc" — a subsequence consisting of letters at positions $ (2, 5, 6) $ and a subsequence consisting of letters at positions $ (3, 5, 6) $ .

Input Format

N/A

Output Format

N/A

Explanation/Hint

In the first example, we can obtain $ 9 $ strings: - "acabac" — there are $ 2 $ subsequences "abc", - "acabbc" — there are $ 4 $ subsequences "abc", - "acabcc" — there are $ 4 $ subsequences "abc", - "acbbac" — there are $ 2 $ subsequences "abc", - "acbbbc" — there are $ 3 $ subsequences "abc", - "acbbcc" — there are $ 4 $ subsequences "abc", - "accbac" — there is $ 1 $ subsequence "abc", - "accbbc" — there are $ 2 $ subsequences "abc", - "accbcc" — there are $ 2 $ subsequences "abc". So, there are $ 2 + 4 + 4 + 2 + 3 + 4 + 1 + 2 + 2 = 24 $ subsequences "abc" in total.