#include<bits/stdc++.h>
using namespace std;
using pii = pair<int,int>;
using ll = long long;
using pll = pair<ll,ll>;
using pli = pair<ll,int>;
using pil = pair<int,ll>;
using ld = long double;
using ui = unsigned int;
using ull = unsigned long long;
using ui128 = __uint128_t;
#define all(x) (x).begin(),(x).end()
#define mp make_pair
#define lc ind<<1
#define rc ind<<1|1
const int MN = 1e5 + 2, LOG = 17, INF = 1e8;
char s[MN];
int wot[MN];
int main () { 
	int n;
	scanf ("%d",&n);
	auto nxt = [&] (int a) {int x = a + 1; return x > n ? 1 : x;};
	auto lst = [&] (int a) {int x = a - 1; return x < 1 ? n : x;};
	scanf ("%s",s+1);
	for (int a = 0; a < 2; a++) {
		for (int b = 0; b < 2; b++) {
			wot[1] = a; wot[2] = b;
			for (int i = 3; i <= n; i++) {
				if ((s[i-1] == 'o' && wot[i-1] == 0) || (s[i-1] == 'x' && wot[i-1] == 1)) wot[i] = wot[i-2];
				else wot[i] = wot[i-2] ^ 1;
			}
			bool ok = 1;
			for (int i = 1; i <= n; i++) {
				if ((s[i] == 'o' && wot[i] == 0) || (s[i] == 'x' && wot[i] == 1)) ok &= wot[nxt(i)] == wot[lst(i)];
				else ok &= wot[nxt(i)] != wot[lst(i)];
			}
			if (ok) {
				for (int i = 1; i <= n; i++) putchar(wot[i]?'W':'S');
				return 0;
			}
		}
	}
	printf ("-1\n");
    return 0;
}

#include <bits/stdc++.h>
using namespace std;
#define rep(i, n) for (int i=0; i<n; i++)
#define pb push_back
#define int long long
typedef pair<int, int> P;

int N;
string s;

signed main() {
    cin.tie(0); ios::sync_with_stdio(false);
    cin >> N >> s;
    rep(a, 2) rep(b, 2) {
        int A[N];
        A[0] = a;
        A[1] = b;
        for (int i=2; i<N; i++) {
            if (s[i-1]=='o' && A[i-1]==0) A[i] = A[i-2];
            else if (s[i-1]=='o' && A[i-1]==1) A[i] = 1^A[i-2];
            else if (s[i-1]=='x' && A[i-1]==0) A[i] = 1^A[i-2];
            else A[i] = A[i-2];
        }
        
        bool flag = true;
        if (s[0]=='o' && A[0]==0) flag &= A[1]==A[N-1];
        else if (s[0]=='o' && A[0]==1) flag &= A[1]!=A[N-1];
        else if (s[0]=='x' && A[0]==0) flag &= A[1]!=A[N-1];
        else if (s[0]=='x' && A[0]==1) flag &= A[1]==A[N-1];
        
        if (s[N-1]=='o' && A[N-1]==0) flag &= A[0]==A[N-2];
        else if (s[N-1]=='o' && A[N-1]==1) flag &= A[0]!=A[N-2];
        else if (s[N-1]=='x' && A[N-1]==0) flag &= A[0]!=A[N-2];
        else if (s[N-1]=='x' && A[N-1]==1) flag &= A[0]==A[N-2];
        
        if (flag) {
            rep(i, N) {
                if (A[i]==0) cout << 'S';
                else cout << 'W';
            }
            cout << endl;
            exit(0);
        }
    }
    cout << -1 << endl;
}