import Data.List

main = do
    n <- readLn :: IO Int
    s <- getLine
    let sw = map (check s) [[True,True], [True,False], [False,True], [False,False]]
    let ans = filter (not . null) sw
    putStrLn $ if null ans then "-1" else format (head ans)

f (xs@(x:_),this) c | this && c == 'o' = ((this:xs), x)
                    | this && c == 'x' = ((this:xs), not x)
                    | c == 'o' = ((this:xs), not x)
                    | c == 'x' = ((this:xs), x)

check s (x:y:_) | x == l && y == next = rev
                | otherwise = []
    where (ps,next) = foldl' f ([x],y) s
          l = head ps
          rev = tail $ reverse ps

format xs = map (\p -> if p then 'S' else 'W') xs