import Control.Applicative ((<$>))
import Data.Maybe

solve :: String  -> String -> Maybe String
solve [] a =
  if (reverse.take 3) a == (take 3.reverse) a
    then Just a
    else Nothing
solve (_:_) [] = undefined
solve (_:_) [_] = undefined
solve (_:_) [_, _] = undefined
solve (c:s) (a1:a2:a3:as)
  | c == 'o' && a2 == 'S' && a1 == a3 = listToMaybe $ mapMaybe (\x-> solve s (x:a1:a2:a3:as)) "SW"
  | c == 'o' && a2 == 'W' && a1 /= a3 = listToMaybe $ mapMaybe (\x-> solve s (x:a1:a2:a3:as)) "SW"
  | c == 'x' && a2 == 'S' && a1 /= a3 = listToMaybe $ mapMaybe (\x-> solve s (x:a1:a2:a3:as)) "SW"
  | c == 'x' && a2 == 'W' && a1 == a3 = listToMaybe $ mapMaybe (\x-> solve s (x:a1:a2:a3:as)) "SW"
  | otherwise = Nothing

main = do
  _ <- read <$> getLine :: IO Int
  s <- getLine :: IO String
  case listToMaybe (mapMaybe (solve s) [[a1,a2,a3]|a1<-"SW",a2<-"SW",a3<-"SW"]) of
    Just ans ->
      putStrLn $ reverse $ init $ drop 2 ans
    Nothing -> putStrLn "-1"
