let first_some f =
  List.fold_left (fun v e -> match v with None -> f e | _ -> v) None

let nb a b r =
  let f b = if b then 1 else 0 in
  [|'W';'S'|].((f (b = 'S') + f (r = 'o') + f (a = 'S')) mod 2)

let () =
  Scanf.scanf "%d %s" @@ fun n s ->
  [('S','S'); ('S','W'); ('W','S'); ('W','W')]
  |> first_some (fun (h0, h1) ->
      let h = Array.make n '0' in
      h.(0) <- h0; h.(1) <- h1;

      let t = String.init n (fun i ->
        if i < 2 then h.(i)
        else
          let v = nb h.(i-2) h.(i-1) s.[i-1] in
          h.(i) <- v; v)
      in

      if nb h.(n-2) h.(n-1) s.[n-1] = h.(0) && nb h.(n-1) h.(0) s.[0] = h.(1) then
        Some t
      else None)
  |> (function Some x -> x | _ -> "-1") |> print_endline