main :: IO ()
main = do
  n <- (read :: String -> Int) <$> getLine
  str <- getLine
  let bs = map decode str
  let anss = check n $ solve bs 
  if null anss then print $ -1
    else print $ map encode $ head anss

check :: Int -> [[Bool]] -> [[Bool]]
check n bs = map (take n) $ filter (\ls -> head ls == last ls)
           $ map (drop 1. reverse) bs

decode :: Char -> Bool
decode c
  | c == 'o' = True
  | c == 'x' = False
  | otherwise = False

encode :: Bool -> Char
encode c
  | c = 'S'
  | otherwise = 'W'

solve :: [Bool] -> [[Bool]]
solve bs = simulate bs [[True, True]
                       ,[True, False]
                       ,[False, True]
                       ,[False, False]]
  where
    simulate :: [Bool] -> [[Bool]] -> [[Bool]]
    simulate [] result = result
      -- filter (\ls -> head ls == last ls) result
    simulate (x:xs) remain
      | null xs = map f (filter (\ls -> head ls == last ls) remain)
      | otherwise = simulate xs $ map f remain
      where
        f :: [Bool] -> [Bool]
        f (s1:s2:s3) =
          case (not x && s1) || (x && not s1)of
            True -> not s2:s1:s2:s3
            False -> s2:s1:s2:s3
