N = gets.to_i S = gets.chomp dp = Array.new(N) { Array.new(26, false) } if S[0] == '?' 26.times { |j| dp[0][j] = true } end if S[0] == 'n' dp[0]['n'.ord - 'a'.ord] = true end if S[0] == 'w' dp[0]['w'.ord - 'a'.ord] = true end if S[0] == 'a' || S[0] == 'o' puts "No" exit end 1.upto(N - 1) do |i| 0.upto(25) do |j| if dp[i - 1][j] if j == 'w'.ord - 'a'.ord if S[i] == 'a' dp[i]['a'.ord - 'a'.ord] = true end if S[i] == 'o' dp[i]['o'.ord - 'a'.ord] = true end if S[i] == '?' dp[i]['a'.ord - 'a'.ord] = true dp[i]['o'.ord - 'a'.ord] = true end else if S[i] == 'w' dp[i]['w'.ord - 'a'.ord] = true end if S[i] == 'n' dp[i]['n'.ord - 'a'.ord] = true end if S[i] == '?' dp[i]['w'.ord - 'a'.ord] = true dp[i]['n'.ord - 'a'.ord] = true end end end end end ans = false ans = true if dp[N - 1]['a'.ord - 'a'.ord] ans = true if dp[N - 1]['o'.ord - 'a'.ord] ans = true if dp[N - 1]['n'.ord - 'a'.ord] if ans puts "Yes" else puts "No" end