#include using namespace std; #define rep(i,n) for(int i=0; i<(n); i++) #define INF ((1LL<<62)-(1LL<<31)) #define all(a) (a).begin(),(a).end() #define rall(a) (a).rbegin(),(a).rend() typedef long long ll; typedef pair pl; const ll mod=1000000007; ll dp[100009][10][2]; int main() { int n; string s; cin >> n >> s; dp[0][0][0]=1; for(int i=0;i<(int)s.size();i++) { for(int j=0;j<=9;j++) { rep(k,2) { dp[i+1][j][k]+=dp[i][j][k]; if(s[i]=='y'&&j==0) dp[i+1][j+1][k]+=dp[i][j][k]; if(s[i]=='u'&&j==1) dp[i+1][j+1][k]+=dp[i][j][k]; if(s[i]=='k'&&j==2) dp[i+1][j+1][k]+=dp[i][j][k]; if(s[i]=='i'&&j==3) dp[i+1][j+1][k]+=dp[i][j][k]; if(s[i]=='c'&&j==4) dp[i+1][j+1][k]+=dp[i][j][k]; if(s[i]=='o'&&j==5) dp[i+1][j+1][k]+=dp[i][j][k]; if(s[i]=='d'&&j==6) dp[i+1][j+1][k]+=dp[i][j][k]; if(s[i]=='e'&&j==7) dp[i+1][j+1][k]+=dp[i][j][k]; if(s[i]=='r'&&j==8) dp[i+1][j+1][k]+=dp[i][j][k]; } if(s[i]=='?') dp[i+1][j+1][1]+=dp[i+1][j][0]; } for(int j=0;j<=9;j++) rep(k,2) dp[i+1][j][k]%=mod; } cout << (dp[s.size()][9][0]+dp[s.size()][9][1])%mod << endl; return 0; }