using System;
using System.Collections.Generic;
using System.Linq;
using static AtCoder.Io;

namespace AtCoder
{
    class Program
    {
        static void Main()
        {
            var n = ReadInt();
            var s = ReadString();
            var patterns = new[] { new[] { true, true }, new[] { true, false }, new[] { false, true }, new[] { false, false } };

            foreach (var pattern in patterns)
            {
                var ans = new bool[n];
                ans[0] = pattern[0];
                ans[1] = pattern[1];
                for (int i = 1; i < s.Length - 1; i++)
                {
                    if (s[i] == 'o')
                    {
                        ans[i + 1] = ans[i] ? ans[i - 1] : !ans[i - 1];
                    }
                    else
                    {
                        ans[i + 1] = ans[i] ? !ans[i - 1] : ans[i - 1];
                    }
                }

                if (s[0] == 'o')
                {
                    if (ans[n - 1] == (ans[0] ? ans[1] : !ans[1]))
                    {
                        if (s[n - 1] == 'o')
                        {
                            if (ans[n - 2] == (ans[n - 1] ? ans[0] : !ans[0]))
                            {
                                Console.WriteLine($"{string.Concat(ans.Select(v => v ? 'S' : 'W'))}");
                                return;
                            }
                        }
                        else
                        {
                            if (ans[n - 2] == (ans[n - 1] ? !ans[0] : ans[0]))
                            {
                                Console.WriteLine($"{string.Concat(ans.Select(v => v ? 'S' : 'W'))}");
                                return;
                            }
                        }
                    }
                }
                else
                {
                    if (ans[n - 1] == (ans[0] ? !ans[1] : ans[1]))
                    {
                        if (s[n - 1] == 'o')
                        {
                            if (ans[n - 2] == (ans[n - 1] ? ans[0] : !ans[0]))
                            {
                                Console.WriteLine($"{string.Concat(ans.Select(v => v ? 'S' : 'W'))}");
                                return;
                            }
                        }
                        else
                        {
                            if (ans[n - 2] == (ans[n - 1] ? !ans[0] : ans[0]))
                            {
                                Console.WriteLine($"{string.Concat(ans.Select(v => v ? 'S' : 'W'))}");
                                return;
                            }
                        }
                    }
                }
                }
                Console.WriteLine($"{-1}");
            }
        }

        public static class Io
        {
            public static string ReadString() => Console.ReadLine();
            public static string[] ReadStringArray() => ReadString().Split(' ');
            public static int ReadInt() => int.Parse(ReadString());
            public static long ReadLong() => long.Parse(ReadString());
            public static int[] ReadIntArray() => ReadStringArray().ParseInt().ToArray();
            public static long[] ReadLongArray() => ReadStringArray().ParseLong().ToArray();
            public static IEnumerable<int> ParseInt(this IEnumerable<string> source) => source.Select(int.Parse);
            public static IEnumerable<long> ParseLong(this IEnumerable<string> source) => source.Select(long.Parse);
        }
    }


Measured memory_bytes: 15560