main::IO()
main = do
  n <- read <$> getLine
  ss <- map ox2Bool <$> getLine
  putStrLn $ solve n ss
  
ox2Bool ::  Char ->  Bool
ox2Bool ox =  case ox of
  'o' -> True
  _ -> False

solve :: Int -> [Bool] -> [Char]
solve n ss = do
  check $ map (solve0 n (head ss) (tail ss)) (sequence [[True,False],[True,False]])  

solve0 ::Int ->Bool -> [Bool] -> [Bool] ->Maybe [Bool]
solve0 n car ls ans = case ls of
  [] -> case (head ans == last ans) && (foldr (==) True [car,(head ans),(ans !! 1),((reverse ans)!!1)]) of
    True -> Just $ reverse $ tail ans
    _ -> Nothing
  x -> solve0 (n-1) car (tail x) ((foldr (==) True [(head x),(ans !! 1),(head ans)]):ans)
  
check :: [Maybe [Bool]] -> String
check ls = case ls of
  []-> "-1"
  _-> case head ls of
    Nothing -> check $ tail ls
    Just x -> map (\ b-> case b of True -> 'S'; False ->'W') x