#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define mp make_pair
#define all(x) (x).begin(),(x).end()
#define fi first
#define se second
#define SZ(x) ((int)(x).size())
#define zero(x) (((x)>0?(x):-(x))<eps)
typedef vector<int> VI;
typedef long long LL;
typedef pair<int,int>PII;
typedef pair<int,string>PIS;
const double eps=1e-9;
const double pi=acos(-1.0);
const int inf=1e9+7;
const int INF=0x3f3f3f3f;
//LL powmod(LL a,LL b) {ll res=1;a%=mod; assert(b>=0); for(;b;b>>=1){if(b&1)res=res*a%mod;a=a*a%mod;}return res;}
char s[100010];
int main(){
//    freopen("in.in","r",stdin);
//    freopen("out.out",";w",stdout);
    int n;
    scanf("%d%s",&n,s+1);
    s[0]=s[n];
    s[n+1]=s[1];
    string ans="SS";
    for(int i=1;i<=n;i++){
        if(ans[i]=='S'){
            if(s[i]=='o'){
                if(ans[i-1]=='S') ans+='S';
                else ans+='W';
            }
            else {
                if(ans[i-1]=='S') ans+='W';
                else ans+='S';
            }
        }
        else {
            if(s[i]=='x'){
                if(ans[i-1]=='S') ans+='S';
                else ans+='W';
            }
            else {
                if(ans[i-1]=='S') ans+='W';
                else ans+='S';
            }
        }
//        cout<<ans<<endl;
    }
    if(ans[0]==ans[n]&&ans[1]==ans[n+1]){
        cout<<ans.substr(1,n)<<endl;
        return 0;
    }
    ans="SW";
    for(int i=1;i<=n;i++){
        if(ans[i]=='S'){
            if(s[i]=='o'){
                if(ans[i-1]=='S') ans+='S';
                else ans+='W';
            }
            else {
                if(ans[i-1]=='S') ans+='W';
                else ans+='S';
            }
        }
        else {
            if(s[i]=='x'){
                if(ans[i-1]=='S') ans+='S';
                else ans+='W';
            }
            else {
                if(ans[i-1]=='S') ans+='W';
                else ans+='S';
            }
        }
    }
    if(ans[0]==ans[n]&&ans[1]==ans[n+1]){
        cout<<ans.substr(1,n)<<endl;
        return 0;
    }
    ans="WS";
    for(int i=1;i<=n;i++){
        if(ans[i]=='S'){
            if(s[i]=='o'){
                if(ans[i-1]=='S') ans+='S';
                else ans+='W';
            }
            else {
                if(ans[i-1]=='S') ans+='W';
                else ans+='S';
            }
        }
        else {
            if(s[i]=='x'){
                if(ans[i-1]=='S') ans+='S';
                else ans+='W';
            }
            else {
                if(ans[i-1]=='S') ans+='W';
                else ans+='S';
            }
        }
    }
    if(ans[0]==ans[n]&&ans[1]==ans[n+1]){
        cout<<ans.substr(1,n)<<endl;
        return 0;
    }
    ans="WW";
    for(int i=1;i<=n;i++){
        if(ans[i]=='S'){
            if(s[i]=='o'){
                if(ans[i-1]=='S') ans+='S';
                else ans+='W';
            }
            else {
                if(ans[i-1]=='S') ans+='W';
                else ans+='S';
            }
        }
        else {
            if(s[i]=='x'){
                if(ans[i-1]=='S') ans+='S';
                else ans+='W';
            }
            else {
                if(ans[i-1]=='S') ans+='W';
                else ans+='S';
            }
        }
    }
    if(ans[0]==ans[n]&&ans[1]==ans[n+1]){
        cout<<ans.substr(1,n)<<endl;
        return 0;
    }
    puts("-1");
    return 0;
}


Measured memory_bytes: 640