main :: IO ()
main = do
  n <- readLn
  s <- getLine
  print $ solve n s

solve :: Int -> String -> String
solve n s
  | coresp ss s = ss
  | coresp sw s = sw
  | coresp ws s = ws
  | coresp ww s = ww
  | otherwise = "-1"
  where
    ss = "SS" ++ g 'S' 'S' s
    sw = "SW" ++ g 'S' 'W' s
    ws = "WS" ++ g 'W' 'S' s
    ww = "WW" ++ g 'W' 'W' s
    coresp (x:y:rest) (z:zx) =
      let
        l = last rest
        ll = last.init $ (y:rest)
        z' = last zx
      in
        c x z l y && c l z' ll x

g a b (x:y:[]) = []
g a b (x:y:rest) =
  c : g b c (y:rest)
  where
    not 'S' = 'W'
    not 'W' = 'S'
    c = case (b, y) of
          ('S', 'o') -> a
          ('S', 'x') -> not a
          ('W', 'o') -> not a
          ('W', 'x') -> a
g a b _ = []

c :: Char -> Char -> Char -> Char -> Bool
c sw xo l r =
  case (sw, xo) of
    ('S', 'o') -> l == r
    ('S', 'x') -> l /= r
    ('W', 'o') -> l /= r
    ('W', 'x') -> l == r
