#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; const long long modc=1e9+7; int main(){ long long N; cin >> N; string S, T="yukicoder"; cin >> S; vector>> dp(N+1, vector(10, vector(2))); for (int i=0; i<=N; i++) dp[i][0][0] = 1; for (int i=1; i<=N; i++){ for (int j=1; j<=9; j++){ dp[i][j][0] += dp[i-1][j][0]; dp[i][j][0] %= modc; if (S[i-1] == T[j-1]){ dp[i][j][0] += dp[i-1][j-1][0]; dp[i][j][0] %= modc; } dp[i][j][1] += dp[i-1][j][1]; dp[i][j][1] %= modc; if (S[i-1] == T[j-1]){ dp[i][j][1] += dp[i-1][j-1][1]; dp[i][j][1] %= modc; } if (S[i-1] == '?'){ dp[i][j][1] += dp[i-1][j-1][0]; dp[i][j][1] %= modc; } } } cout << (dp[N][9][0] + dp[N][9][1]) % modc << endl; return 0; }