#include <bits/stdc++.h>
typedef long long ll;
typedef long double ld;
const int INF=1e9,MOD=1e9+7,ohara=1e6+10;
const ll LINF=1e18;
using namespace std;

#define rep(i,n) for(int (i)=0;(i)<(int)(n);(i)++)
#define rrep(i,a,b) for(int i=(a);i<(b);i++)
#define rrrep(i,a,b) for(int i=(a);i>=(b);i--)
#define all(v) (v).begin(), (v).end()
#define Size(n) (n).size()
#define Cout(x) cout<<(x)<<endl
#define doublecout(a) cout<<fixed<<setprecision(15)<<a<<endl;
#define Cerr(x) cerr<<(x)<<endl
#define fi first
#define se second
#define P pair<ll,ll> 
#define m_p make_pair
#define V vector<ll> 

ll n,cnt,a,b,c,d,tmp,tmpp,m,h,w,x,y,sum,pos,k;
ld doua;
int dy[]={1,0,-1,0};
int dx[]={0,1,0,-1};
//int dy[]={-1,0,1,-1,1,-1,0,1};
//int dx[]={-1,-1,-1,0,0,1,1,1};
string alph("abcdefghijklmnopqrstuvwxyz"),s;
bool fl;
struct edge{int to,cost;};

//-------------------------↓↓↓↓↓↓------------------------

int main(void){
        cin.tie(0);
        cout.tie(0);
    ios::sync_with_stdio(false);

    cin>>n>>s;
    char ans[n+10]={};
    ans[0]='S';ans[1]='S';
    rrep(i,1,n-1){
        if(ans[i]=='S'){
            if(s[i]=='o')ans[i+1]=ans[i-1];
            else{
                if(ans[i-1]=='S')ans[i+1]='W';
                else ans[i+1]='S';
            }
        }
        else{
            if(s[i]=='o'){
                if(ans[i-1]=='S')ans[i+1]='W';
                else ans[i+1]='S';
            }
            else ans[i+1]=ans[i-1];
        }
    }
    fl=true;
    if(s[0]=='o'){
        if(ans[0]=='S'){
            if(ans[n-1]!=ans[1])fl=false;
        }
        else{
            if(ans[n-1]==ans[1])fl=false;
        }
    }
    else{
        if(ans[0]=='W'){
            if(ans[n-1]!=ans[1])fl=false;
        }
        else{
            if(ans[n-1]==ans[1])fl=false;
        }
    }
    if(s[n-1]=='o'){
        if(ans[n-1]=='S'){
            if(ans[0]!=ans[n-2])fl=false;
        }
        else{
            if(ans[0]==ans[n-2])fl=false;
        }
    }
    else{
        if(ans[n-1]=='W'){
            if(ans[0]!=ans[n-2])fl=false;
        }
        else{
            if(ans[0]==ans[n-2])fl=false;
        }
    }
    if(fl){
        rep(i,n)cout<<ans[i];
        cout<<"\n";
        return 0;
    }

    ans[n+10]={};
    ans[0]='S';ans[1]='W';
    rrep(i,1,n-1){
        if(ans[i]=='S'){
            if(s[i]=='o')ans[i+1]=ans[i-1];
            else{
                if(ans[i-1]=='S')ans[i+1]='W';
                else ans[i+1]='S';
            }
        }
        else{
            if(s[i]=='o'){
                if(ans[i-1]=='S')ans[i+1]='W';
                else ans[i+1]='S';
            }
            else ans[i+1]=ans[i-1];
        }
    }
    fl=true;
    if(s[0]=='o'){
        if(ans[0]=='S'){
            if(ans[n-1]!=ans[1])fl=false;
        }
        else{
            if(ans[n-1]==ans[1])fl=false;
        }
    }
    else{
        if(ans[0]=='W'){
            if(ans[n-1]!=ans[1])fl=false;
        }
        else{
            if(ans[n-1]==ans[1])fl=false;
        }
    }
    if(s[n-1]=='o'){
        if(ans[n-1]=='S'){
            if(ans[0]!=ans[n-2])fl=false;
        }
        else{
            if(ans[0]==ans[n-2])fl=false;
        }
    }
    else{
        if(ans[n-1]=='W'){
            if(ans[0]!=ans[n-2])fl=false;
        }
        else{
            if(ans[0]==ans[n-2])fl=false;
        }
    }
    if(fl){
        rep(i,n)cout<<ans[i];
        cout<<"\n";
        return 0;
    }

    ans[n+10]={};
    ans[0]='W';ans[1]='S';
    rrep(i,1,n-1){
        if(ans[i]=='S'){
            if(s[i]=='o')ans[i+1]=ans[i-1];
            else{
                if(ans[i-1]=='S')ans[i+1]='W';
                else ans[i+1]='S';
            }
        }
        else{
            if(s[i]=='o'){
                if(ans[i-1]=='S')ans[i+1]='W';
                else ans[i+1]='S';
            }
            else ans[i+1]=ans[i-1];
        }
    }
    fl=true;
    if(s[0]=='o'){
        if(ans[0]=='S'){
            if(ans[n-1]!=ans[1])fl=false;
        }
        else{
            if(ans[n-1]==ans[1])fl=false;
        }
    }
    else{
        if(ans[0]=='W'){
            if(ans[n-1]!=ans[1])fl=false;
        }
        else{
            if(ans[n-1]==ans[1])fl=false;
        }
    }
    if(s[n-1]=='o'){
        if(ans[n-1]=='S'){
            if(ans[0]!=ans[n-2])fl=false;
        }
        else{
            if(ans[0]==ans[n-2])fl=false;
        }
    }
    else{
        if(ans[n-1]=='W'){
            if(ans[0]!=ans[n-2])fl=false;
        }
        else{
            if(ans[0]==ans[n-2])fl=false;
        }
    }
    if(fl){
        rep(i,n)cout<<ans[i];
        cout<<"\n";
        return 0;
    }

    ans[n+10]={};
    ans[0]='W';ans[1]='W';
    rrep(i,1,n-1){
        if(ans[i]=='S'){
            if(s[i]=='o')ans[i+1]=ans[i-1];
            else{
                if(ans[i-1]=='S')ans[i+1]='W';
                else ans[i+1]='S';
            }
        }
        else{
            if(s[i]=='o'){
                if(ans[i-1]=='S')ans[i+1]='W';
                else ans[i+1]='S';
            }
            else ans[i+1]=ans[i-1];
        }
    }
    fl=true;
    if(s[0]=='o'){
        if(ans[0]=='S'){
            if(ans[n-1]!=ans[1])fl=false;
        }
        else{
            if(ans[n-1]==ans[1])fl=false;
        }
    }
    else{
        if(ans[0]=='W'){
            if(ans[n-1]!=ans[1])fl=false;
        }
        else{
            if(ans[n-1]==ans[1])fl=false;
        }
    }
    if(s[n-1]=='o'){
        if(ans[n-1]=='S'){
            if(ans[0]!=ans[n-2])fl=false;
        }
        else{
            if(ans[0]==ans[n-2])fl=false;
        }
    }
    else{
        if(ans[n-1]=='W'){
            if(ans[0]!=ans[n-2])fl=false;
        }
        else{
            if(ans[0]==ans[n-2])fl=false;
        }
    }
    if(fl){
        rep(i,n)cout<<ans[i];
        cout<<"\n";
        return 0;
    }

    Cout(-1);
    return 0;
}


Measured memory_bytes: 720