from copy import deepcopy N = int(input()) S = input() MOD = 10 ** 9 + 7 L = 9 dp0 = [0] * (L + 1) # ? が入らない dp0[0] = 1 dp1 = [[0] * (L + 1) for _ in range(L)] # ? が入る for i in range(L): dp1[i][0] = 1 d = {s: i for i, s in enumerate('yukicoder')} d['?'] = -1 for s in S: new_dp0 = dp0.copy() new_dp1 = deepcopy(dp1) if s not in d: continue si = d[s] if si == -1: for i in range(L): new_dp1[i][i + 1] += dp1[i][i] new_dp1[i][i + 1] %= MOD else: new_dp0[si + 1] += dp0[si] new_dp0[si + 1] %= MOD for i in range(L): if i != si: new_dp1[i][si + 1] += dp1[i][si] new_dp1[i][si + 1] %= MOD dp0 = new_dp0 dp1 = new_dp1 ans = (dp0[-1] + sum(dp1[i][-1] for i in range(9))) % MOD print(ans)