#include<bits/stdc++.h>
/*
#include<iostream>
#include<vector>
#include<string>
#include<array>
#include<cmath>
#include<algorithm>
#include<map>
#include<set>
#include<queue>
#include<numeric>
#include<iomanip>
#include<utility>
#include<cstdlib>
#include<typeinfo>
#include<stack>
#include<cassert>
#include<functional>
*/
#define int long long int
#define double long double
using namespace std;
#define INT_DMAX 1000000007
#define INF 1000000000000000007
const int MAX_N = 1 << 17;
#define rep(i,n) for(int (i)=0, i##_len = (n);(i)<i##_len;(i)++)
#define reps(i,x) for(int (i)=1;(i)<=(int)(x);(i)++)
#define rrep(i,x) for(int (i)=((int)(x)-1);(i)>=0;(i)--)
#define rreps(i,x) for(int (i)=((int)(x));(i)>0;(i)--)
#define FOR(i,a,b) for (int (i) = (a); (i) < (b); (i)++)
#define pb push_back
#define mp make_pair
#define bit(n) ((int)(1)<<(n))
#define all(x) (x).begin(),(x).end()
#define debug(x) std::cout << #x << ": " << (x) << std::endl 
#define nint int
using namespace std;

int dy[]={0, 0, 1, -1, 0};
int dx[]={1, -1, 0, 0, 0};
typedef pair<int,int> p;
typedef pair<double,double> dop;
template<class T>bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0; }
template<class T>bool chmin(T &a, const T &b) { if (b<a) { a=b; return 1; } return 0; }
int gcd(int a,int b){return b?gcd(b,a%b):a;}
struct aaa{
    aaa(){
        cin.tie(0); ios::sync_with_stdio(0); cout<<fixed<<setprecision(20);
    };
}aaaaaaa;

signed main()
{
int n;
std::cin >> n;
std::string s;
std::cin >> s;
int past = 0;
int past2 = 0;

//SScase
std::string ss;
past = 1;
past2 = 1;
ss = ss + 'S';
ss = ss + 'S';
for(int i = 2; i < n; i++){
    if((past2 == 1 && s[i - 1] == 'o') || (past2 == -1 && s[i - 1] == 'x')){
        int temp = past;
        past = past2;
        past2 = temp;
        if(past2 == 1){
            ss = ss + 'S';
        } else {
            ss = ss + 'W';
        }
    } else if((past2 == 1 && s[i - 1] == 'x') || (past2 == -1 && s[i - 1] == 'o')){
        int temp = past;
        past = past2;
        past2 = temp * -1;
        if(past2 == 1){
            ss = ss + 'S';
        } else {
            ss = ss + 'W';
        }
    }
}
if(!((past2 == 1) ^ (s[0] == 'o')) && !((past == 1) ^ !((past2 == 1) ^ (s[n - 1] == 'o')) )){
    std::cout << ss << std::endl;
    return 0;
}

//SWcase
std::string sw;
past = 1;
past2 = -1;
sw = sw + 'S';
sw = sw + 'W';
for(int i = 2; i < n; i++){
    if((past2 == 1 && s[i - 1] == 'o') || (past2 == -1 && s[i - 1] == 'x')){
        int temp = past;
        past = past2;
        past2 = temp;
        if(past2 == 1){
            sw = sw + 'S';
        } else {
            sw = sw + 'W';
        }
    } else if((past2 == 1 && s[i - 1] == 'x') || (past2 == -1 && s[i - 1] == 'o')){
        int temp = past;
        past = past2;
        past2 = temp * -1;
        if(past2 == 1){
            sw = sw + 'S';
        } else {
            sw = sw + 'W';
        }
    }
}
if(!((past2 == -1) ^ (s[0] == 'o')) && !((past == 1) ^ !((past2 == 1) ^ (s[n - 1] == 'o')) )){
    std::cout << sw << std::endl;
    return 0;
}

//WScase
std::string ws;
past = -1;
past2 = 1;
ws = ws + 'W';
ws = ws + 'S';
for(int i = 2; i < n; i++){
    if((past2 == 1 && s[i - 1] == 'o') || (past2 == -1 && s[i - 1] == 'x')){
        int temp = past;
        past = past2;
        past2 = temp;
        if(past2 == 1){
            ws = ws + 'S';
        } else {
            ws = ws + 'W';
        }
    } else if((past2 == 1 && s[i - 1] == 'x') || (past2 == -1 && s[i - 1] == 'o')){
        int temp = past;
        past = past2;
        past2 = temp * -1;
        if(past2 == 1){
            ws = ws + 'S';
        } else {
            ws = ws + 'W';
        }
    }
}
if(!((past2 == 1) ^ !(s[0] == 'o')) && !((past == -1) ^ !((past2 == 1) ^ (s[n - 1] == 'o')) )){
    std::cout << ws << std::endl;
    return 0;
}

//WWcase
std::string ww;
past = -1;
past2 = -1;
ww = ww + 'W';
ww = ww + 'W';
for(int i = 2; i < n; i++){
    if((past2 == 1 && s[i - 1] == 'o') || (past2 == -1 && s[i - 1] == 'x')){
        int temp = past;
        past = past2;
        past2 = temp;
        if(past2 == 1){
            ww = ww + 'S';
        } else {
            ww = ww + 'W';
        }
    } else if((past2 == 1 && s[i - 1] == 'x') || (past2 == -1 && s[i - 1] == 'o')){
        int temp = past;
        past = past2;
        past2 = temp * -1;
        if(past2 == 1){
            ww = ww + 'S';
        } else {
            ww = ww + 'W';
        }
    }
}
if(!((past2 == -1) ^ !(s[0] == 'o')) && !((past == -1) ^ !((past2 == 1) ^ (s[n - 1] == 'o')) )){
    std::cout << ww << std::endl;
    return 0;
}

std::cout << -1 << std::endl;
return 0;
}

Measured memory_bytes: 1104