#include <bits/stdc++.h>
#define FOR(i,a,b) for(int i=(a);i<(b);++i)
#define REP(i,n)  for(int i=0;i<(n);++i)
#define FORq(i, m, n) for(int i = (m);i <= (n);++i)
#define SCD(n) scanf("%d",&n)
#define SCD2(m,n) scanf("%d%d",&m,&n)
#define SCD3(m,n,k) scanf("%d%d%d",&m,&n,&k)
#define SCLLD(n) scanf("%lld",&n)
#define SCLLD2(m,n) scanf("%lld%lld",&m,&n)
#define SCLLD3(m,n,k) scanf("%lld%lld%lld",&m,&n,&k)
#define PB push_back
#define MP make_pair
#define ARSCD(A,N) REP(i,N){SCD(A[i]);}
#define ARSCD1(A,N) FORq(i,1,N){SCD(A[i]);}
#define PRINTD(n) printf("%d\n",n)
#define PRINTLLD(n) printf("%lld\n",n)
#define DEBUG printf("%s\n","debug")
#define fst first
#define snd second
#define SIN(x,S) (S.count(x) != 0)
using namespace std;
typedef pair<int,int> PII;
typedef vector<int> VI;
typedef vector < VI > VVI;
typedef long long ll;
typedef long long integer;
//////////////////////////////////////////////////
int N;
string s;
char ans[100002];

bool sim(){
    FORq(i,1,N-2){
        if ((s[i] == 'o') and (ans[i] == 'S')){
            ans[i+1] = ans[i-1];
        }else if ((s[i] == 'x') and (ans[i] == 'S')){
            if (ans[i-1] == 'S') ans[i+1] = 'W';
            else ans[i+1] = 'S';
        }else if((s[i] == 'o') and (ans[i] == 'W')){
            if (ans[i-1] == 'S') ans[i+1] = 'W';
            else ans[i+1] = 'S';
        }else{
            ans[i+1]=ans[i-1];
        }
    }

    bool chk = true;
    FORq(i,1,N-2){
        if (s[i] == 'o'){
            if (ans[i] == 'S'){
                if (ans[i-1] != ans[i+1]) chk = false;
            }else{
                if (ans[i-1] == ans[i+1]) chk = false;
            }
            if (ans[i] == 'W'){
                if (ans[i-1] == ans[i+1]) chk = false;
            }else{
                if (ans[i-1] != ans[i+1]) chk = false;
            }
        }else{
            if (ans[i] == 'S'){
                if (ans[i-1] == ans[i+1]) chk = false;
            }else{
                if (ans[i-1] != ans[i+1]) chk = false;
            }
            if (ans[i] == 'W'){
                if (ans[i-1] != ans[i+1]) chk = false;
            }else{
                if (ans[i-1] == ans[i+1]) chk = false;
            }

        }
    }

    // N-1
        if (s[N-1] == 'o'){
            if (ans[N-1] == 'S'){
                if (ans[N-2] != ans[0]) chk = false;
            }else{
                if (ans[N-2] == ans[0]) chk = false;
            }
            if (ans[N-1] == 'W'){
                if (ans[N-2] == ans[0]) chk = false;
            }else{
                if (ans[N-2] != ans[0]) chk = false;
            }
        }else{
            if (ans[N-1] == 'S'){
                if (ans[N-2] == ans[0]) chk = false;
            }else{
                if (ans[N-2] != ans[0]) chk = false;
            }
            if (ans[N-1] == 'W'){
                if (ans[N-2] != ans[0]) chk = false;
            }else{
                if (ans[N-2] == ans[0]) chk = false;
            }

        }

        // 0
        if (s[0] == 'o'){
            if (ans[0] == 'S'){
                if (ans[N-1] != ans[1]) chk = false;
            }else{
                if (ans[N-1] == ans[1]) chk = false;
            }
            if (ans[0] == 'W'){
                if (ans[N-1] == ans[1]) chk = false;
            }else{
                if (ans[N-1] != ans[1]) chk = false;
            }
        }else{
            if (ans[0] == 'S'){
                if (ans[N-1] == ans[1]) chk = false;
            }else{
                if (ans[N-1] != ans[1]) chk = false;
            }
            if (ans[0] == 'W'){
                if (ans[N-1] != ans[1]) chk = false;
            }else{
                if (ans[N-1] == ans[1]) chk = false;
            }

        }

    return chk;
}


int main(){
    SCD(N);getchar();
    getline(cin,s);

    //first
    ans[0] = 'S'; ans[1] = 'S';
    if (sim()){
        REP(i,N){
            cout << ans[i];
        }
        cout << "\n";
        return 0;
    }

    ans[0] = 'S'; ans[1] = 'W';
    if (sim()){
        REP(i,N){
            cout << ans[i];
        }
        cout << "\n";
        return 0;
    }
        ans[0] = 'W'; ans[1] = 'S';
    if (sim()){
        REP(i,N){
            cout << ans[i];
        }
        cout << "\n";
        return 0;
    }
        ans[0] = 'W'; ans[1] = 'W';
    if (sim()){
        REP(i,N){
            cout << ans[i];
        }
        cout << "\n";
        return 0;
    }

    PRINTD(-1);
    return 0;
}

Measured memory_bytes: 640