main :: IO ()
main = do
  n <- (read :: String -> Int) <$> getLine
  strs <- getLine
  let answers = solve n $ encode strs
  --mapM_ putStrLn $ map (decode.reverse) answers
  putStrLn $ if null answers
             then "-1"
             else decode.drop 1 $ reverse.drop 1 $head answers
                       
encode :: String -> [Bool]
encode = map (== 'o')

decode :: [Bool] -> String
decode = map (\b -> if b then 'S' else 'W')


xor :: Bool -> Bool -> Bool
xor a b = (not a && b) || (not b && a)

solve :: Int -> [Bool] -> [[Bool]]
solve n input = filter check $ foldl (\a b -> map (next b) a)  [[True, True]
                                           ,[True, False]
                                           ,[False, True]
                                           ,[False, False]] input
  where
    next :: Bool -> [Bool] -> [Bool]
    next x bs@(s1:s2:_) = if xor x s1
                        then not s2:bs
                        else s2:bs 
    check :: [Bool] -> Bool
    check bs = and $ zipWith (==) (take 2 bs) (drop n bs)