import sys



def debug(x, table):

    for name, val in table.items():

        if x is val:

            print('DEBUG:{} -> {}'.format(name, val), file=sys.stderr)

            return None



def solve():

    N = int(input())

    S = [True if i == 'o' else False for i in input()]

    # debug(S, locals())



    for i, j in [(False, False), (False, True), (True, False), (True, True)]:

        pat = [i, j]

        for k in range(2, N):

            if pat[k - 1]:

                if S[k - 1]:

                    pat.append(pat[k - 2])

                else:

                    pat.append(not pat[k - 2])

            else:

                if S[k - 1]:

                    pat.append(not pat[k - 2])

                else:

                    pat.append(pat[k - 2])



        # debug(pat, locals())



        for k in range(N):

            if pat[k]:

                if S[k] != is_same(pat, k, N):

                    break

            else:

                if S[k] == is_same(pat, k, N):

                    break

        else:

            ans = ['S' if pat[k] else 'W' for k in range(N)]

            print(''.join(ans))

            return None



    print(-1)



def is_same(pat, i, N):

    return pat[(i - 1) % N] == pat[(i + 1) % N]



if __name__ == '__main__':

    solve()

import sys

from itertools import product



def debug(x, table):

    for name, val in table.items():

        if x is val:

            print('DEBUG:{} -> {}'.format(name, val), file=sys.stderr)

            return None



def solve():

    N = int(input())

    S = [0 if i == 'o' else 1 for i in input()]

    

    for i, j in product(range(2), repeat=2):

        pat = [i, j] + [0]*(N - 2)

        for k in range(2, N):

            pat[k] = (S[k - 1] - (pat[k - 1] + pat[k - 2])) % 2



        if S[-1] != (pat[0] + pat[-1] + pat[-2]) % 2:

            continue

        if S[0] != (pat[1] + pat[0] + pat[-1]) % 2:

            continue



        ans = ['S' if pat[k] == 0 else 'W' for k in range(N)]

        print(''.join(ans))

        return None



    print(-1)



if __name__ == '__main__':

    solve()

import sys


def debug(x, table):
    for name, val in table.items():
        if x is val:
            print("DEBUG:{} -> {}".format(name, val), file=sys.stderr)
            return None


def solve():
    N = int(input())
    S = [True if i == "o" else False for i in input()]
    # debug(S, locals())
    for i, j in [(False, False), (False, True), (True, False), (True, True)]:
        pat = [i, j]
        for k in range(2, N):
            if pat[k - 1]:
                if S[k - 1]:
                    pat.append(pat[k - 2])
                else:
                    pat.append(not pat[k - 2])
            else:
                if S[k - 1]:
                    pat.append(not pat[k - 2])
                else:
                    pat.append(pat[k - 2])
        # debug(pat, locals())
        for k in range(N):
            if pat[k]:
                if S[k] != is_same(pat, k, N):
                    break
            else:
                if S[k] == is_same(pat, k, N):
                    break
        else:
            ans = ["S" if pat[k] else "W" for k in range(N)]
            print("".join(ans))
            return None
    print(-1)


def is_same(pat, i, N):
    return pat[(i - 1) % N] == pat[(i + 1) % N]


if __name__ == "__main__":
    solve()

import sys
from itertools import product


def debug(x, table):
    for name, val in table.items():
        if x is val:
            print("DEBUG:{} -> {}".format(name, val), file=sys.stderr)
            return None


def solve():
    N = int(input())
    S = [0 if i == "o" else 1 for i in input()]
    for i, j in product(range(2), repeat=2):
        pat = [i, j] + [0] * (N - 2)
        for k in range(2, N):
            pat[k] = (S[k - 1] - (pat[k - 1] + pat[k - 2])) % 2
        if S[-1] != (pat[0] + pat[-1] + pat[-2]) % 2:
            continue
        if S[0] != (pat[1] + pat[0] + pat[-1]) % 2:
            continue
        ans = ["S" if pat[k] == 0 else "W" for k in range(N)]
        print("".join(ans))
        return None
    print(-1)


if __name__ == "__main__":
    solve()

+from itertools import product -    S = [True if i == "o" else False for i in input()] -    # debug(S, locals()) -    for i, j in [(False, False), (False, True), (True, False), (True, True)]: -        pat = [i, j] +    S = [0 if i == "o" else 1 for i in input()] +    for i, j in product(range(2), repeat=2): +        pat = [i, j] + [0] * (N - 2) -            if pat[k - 1]: -                if S[k - 1]: -                    pat.append(pat[k - 2]) -                else: -                    pat.append(not pat[k - 2]) -            else: -                if S[k - 1]: -                    pat.append(not pat[k - 2]) -                else: -                    pat.append(pat[k - 2]) -        # debug(pat, locals()) -        for k in range(N): -            if pat[k]: -                if S[k] != is_same(pat, k, N): -                    break -            else: -                if S[k] == is_same(pat, k, N): -                    break -        else: -            ans = ["S" if pat[k] else "W" for k in range(N)] -            print("".join(ans)) -            return None +            pat[k] = (S[k - 1] - (pat[k - 1] + pat[k - 2])) % 2 +        if S[-1] != (pat[0] + pat[-1] + pat[-2]) % 2: +            continue +        if S[0] != (pat[1] + pat[0] + pat[-1]) % 2: +            continue +        ans = ["S" if pat[k] == 0 else "W" for k in range(N)] +        print("".join(ans)) +        return None - - -def is_same(pat, i, N): -    return pat[(i - 1) % N] == pat[(i + 1) % N]