import Data.Array.Unboxed
import Data.Bool
import qualified Data.ByteString.Char8  as C
import Data.List
import Data.Maybe

main = sol <$> getn <*> gets >>= put

getn = fst . fromJust . C.readInt <$> C.getLine

gets = C.filter ((||) <$> ('o' ==) <*> ('x' ==)) <$> C.getLine

put = putStrLn . (flip bool "-1" . head <*> null)

sol n s = mapMaybe f $ (,) <$> "SW" <*> "SW"
  where
  a = listArray (0,n) $ (=='o') <$> C.last s:C.unpack s :: UArray Int Bool
  f p = (\(s,Just r) -> bool Nothing (Just (C.unpack s)) (p==fst r)) $ C.unfoldrN n step (p,1)
  step (('S','S'),i) = Just ('S', (('S',bool 'W' 'S' (a!i)),i+1)) 
  step (('S','W'),i) = Just ('W', (('W',bool 'S' 'W' (a!i)),i+1)) 
  step (('W','S'),i) = Just ('S', (('S',bool 'S' 'W' (a!i)),i+1)) 
  step (('W','W'),i) = Just ('W', (('W',bool 'W' 'S' (a!i)),i+1)) 
