#include <cstdio>
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <malloc.h>
#include <stack>
#include <cstring>
#include <string>
#include <set>
#include <stack>
#include <cstdlib>
#include <unordered_map>
#define INT long long int
#define MOD 1000000007
#define oo 2000000007
using namespace std;

int n;
string s, t;
bool done = false;

void dp(int x)
{
    if( done ) return;
    if( x == n )
    {
        cout<<t<<endl;
        exit(0);
        return;
    }
    int pr = (x-1+n)%n, nt = (x+1)%n;
    char a, b;
    if( t[x] == 'S' )
    {
        if( s[x] == 'o' )
        {
            if( (t[pr] == 'S' or t[pr] =='?') and (t[nt] == 'S' or t[nt] == '?') )
            {
                a = t[pr], b = t[nt];
                t[pr] = 'S', t[nt] = 'S';
                dp(x+1);
                t[pr] = a, t[nt] = b;
            }
            else if( (t[pr] == 'W' or t[pr] =='?') and (t[nt] == 'W' or t[nt] == '?') )
            {
                a = t[pr], b = t[nt];
                t[pr] = 'W', t[nt] = 'W';
                dp(x+1);
                t[pr] = a, t[nt] = b;
            }
            else return;
        }
        else
        {
            if( (t[pr] == 'S' or t[pr] =='?') and (t[nt] == 'W' or t[nt] == '?') )
            {
                a = t[pr], b = t[nt];
                t[pr] = 'S', t[nt] = 'W';
                dp(x+1);
                t[pr] = a, t[nt] = b;
            }
            else if( (t[pr] == 'W' or t[pr] =='?') and (t[nt] == 'S' or t[nt] == '?') )
            {
                a = t[pr], b = t[nt];
                t[pr] = 'W', t[nt] = 'S';
                dp(x+1);
                t[pr] = a, t[nt] = b;
            }

            else return;
        }
    }
    else if( t[x] == 'W' )
    {
        if( s[x] == 'x' )
        {
            if( (t[pr] == 'W' or t[pr] =='?') and (t[nt] == 'W' or t[nt] == '?') )
            {
                a = t[pr], b = t[nt];
                t[pr] = 'W', t[nt] = 'W';
                dp(x+1);
                t[pr] = a, t[nt] = b;
            }
            else if( (t[pr] == 'S' or t[pr] =='?') and (t[nt] == 'S' or t[nt] == '?') )
            {
                a = t[pr], b = t[nt];
                t[pr] = 'S', t[nt] = 'S';
                dp(x+1);
                t[pr] = a, t[nt] = b;
            }
            else return;
        }
        else
        {
            if( (t[pr] == 'S' or t[pr] =='?') and (t[nt] == 'W' or t[nt] == '?') )
            {
                a = t[pr], b = t[nt];
                t[pr] = 'S', t[nt] = 'W';
                dp(x+1);
                t[pr] = a, t[nt] = b;
            }
            else if( (t[pr] == 'W' or t[pr] =='?') and (t[nt] == 'S' or t[nt] == '?') )
            {
                a = t[pr], b = t[nt];
                t[pr] = 'W', t[nt] = 'S';
                dp(x+1);
                t[pr] = a, t[nt] = b;
            }

            else return;
        }
    }
    else if( t[x] == '?' )
    {
        t[x] = 'S';
        if( s[x] == 'o' )
        {
            if( (t[pr] == 'S' or t[pr] =='?') and (t[nt] == 'S' or t[nt] == '?') )
            {
                a = t[pr], b = t[nt];
                t[pr] = 'S', t[nt] = 'S';
                dp(x+1);
                t[pr] = a, t[nt] = b;
            }
            if( (t[pr] == 'W' or t[pr] =='?') and (t[nt] == 'W' or t[nt] == '?') )
            {
                a = t[pr], b = t[nt];
                t[pr] = 'W', t[nt] = 'W';
                dp(x+1);
                t[pr] = a, t[nt] = b;
            }
        }
        else
        {
            if( (t[pr] == 'S' or t[pr] =='?') and (t[nt] == 'W' or t[nt] == '?') )
            {
                a = t[pr], b = t[nt];
                t[pr] = 'S', t[nt] = 'W';
                dp(x+1);
                t[pr] = a, t[nt] = b;
            }
            if( (t[pr] == 'W' or t[pr] =='?') and (t[nt] == 'S' or t[nt] == '?') )
            {
                a = t[pr], b = t[nt];
                t[pr] = 'W', t[nt] = 'S';
                dp(x+1);
                t[pr] = a, t[nt] = b;
            }
        }
        t[x] = 'W';
        if( s[x] == 'x' )
        {
            if( (t[pr] == 'W' or t[pr] =='?') and (t[nt] == 'W' or t[nt] == '?') )
            {
                a = t[pr], b = t[nt];
                t[pr] = 'W', t[nt] = 'W';
                dp(x+1);
                t[pr] = a, t[nt] = b;
            }
            if( (t[pr] == 'S' or t[pr] =='?') and (t[nt] == 'S' or t[nt] == '?') )
            {
                a = t[pr], b = t[nt];
                t[pr] = 'S', t[nt] = 'S';
                dp(x+1);
                t[pr] = a, t[nt] = b;
            }
        }
        else
        {
            if( (t[pr] == 'S' or t[pr] =='?') and (t[nt] == 'W' or t[nt] == '?') )
            {
                a = t[pr], b = t[nt];
                t[pr] = 'S', t[nt] = 'W';
                dp(x+1);
                t[pr] = a, t[nt] = b;
            }
            if( (t[pr] == 'W' or t[pr] =='?') and (t[nt] == 'S' or t[nt] == '?') )
            {
                a = t[pr], b = t[nt];
                t[pr] = 'W', t[nt] = 'S';
                dp(x+1);
                t[pr] = a, t[nt] = b;
            }
        }
    }

}

int main()
{
    ios::sync_with_stdio(false);
    cin>>n>>s;
    for(int i = 0 ; i < n ; i++ ) t+='?';
    dp(0);
    cout<<-1<<endl;
    return 0;
}


Measured memory_bytes: 8528