#include const int mod = 1e9+7; char s[100005]; int f[100005][10][2]; // f[i][j][k]: i chac, now len is j, used/not int rnk[28]; int main(){ int n; scanf("%d%s",&n,s+1); f[0][0][0] = 1; int len = 9; char a[] = "yukicoder"; for(int i = 0; i < 26; i++){ char cur = 'a' + i; rnk[i] = -1; for(int j = 0; j < 9; j++){ if(cur == a[j]) rnk[i] = j+1; } } for(int i = 1; i <= n; i++){ for(int j = 0; j <= len; j++){ for(int k = 0; k < 2; k++){ f[i][j][k] = f[i-1][j][k]; if(k && s[i]=='?' && j) f[i][j][k] = (f[i][j][k] + f[i-1][j-1][0])%mod; if(s[i]!='?'){ int cur = s[i]-'a'; if(rnk[cur]!=-1){ int jj = rnk[cur]; if(jj == j) f[i][j][k] = (f[i][j][k] + f[i-1][j-1][k])%mod; } } //printf("f[%d][%d][%d] = %lld\n",i,j,k,f[i][j][k]); } } } printf("%d\n",(f[n][9][0] + f[n][9][1])%mod); return 0; }