main :: IO ()
main = do
  n <- (read :: String -> Int) <$> getLine
  strs <- getLine
  let answers = solve n $ encode strs
  if null answers then print $ -1
                  else putStrLn.decode.drop 1 $ reverse.drop 1 $head answers
encode :: String -> [Bool]
encode str = map (== 'o') str
 
decode :: [Bool] -> String
decode [] = "-1"
decode bs = map (\b -> if b then 'S' else 'W') bs
 
 
xor :: Bool -> Bool -> Bool
xor a b = (not a && b) || (not b && a)
 
solve :: Int -> [Bool] -> [[Bool]]
solve n input = filter check $ search input [[True, True]
                     ,[True, False]
                     ,[False, True]
                     ,[False, False]]
  where
    search :: [Bool] -> [[Bool]] -> [[Bool]]
    search [] result = result
    search (x:xs) result = search xs $ map next result 
      where
        next :: [Bool] -> [Bool]
        next (s1:s2:s3) = if xor x s1
                          then not s2:s1:s2:s3
                          else s2:s1:s2:s3 
    check :: [Bool] -> Bool
    check bs = and $ zipWith (==) (take 2 bs) (drop n bs)