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

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

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