#pragma GCC optimize ("-O3")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")

#include<cmath>
#include<cstdio>
#include<algorithm>
#include<bitset>
#include<complex>
#include<deque>
#include<fstream>
#include<functional>
#include<iomanip>
#include<iostream>
#include<iterator>
#include<limits>
#include<list>
#include<map>
#include<numeric>
#include<queue>
#include<set>
#include<sstream>
#include<stack>
#include<typeinfo>
#include<typeindex>
#include<type_traits>
#include<utility>
#include<valarray>
#include<vector>
#include<array>
#include<forward_list>
#include<random>
#include<ratio>
#include<tuple>
#include<unordered_map>
#include<unordered_set>
#include<cstring>

using namespace std;
using Int = long long;
typedef pair<int,int> Pi; typedef pair<Int,Int> Pl;
const int mod = 1e9+7;
const Int Inf = 1e17;
#define END {cout<<ans<<'\n'; return 0;}
#define ALL(v) (v).begin(),(v).end()
#define fi first
#define se second
#define mp make_pair
#define Pr(t) priority_queue<t>
#define gPr(t) priority_queue<t,vector<t>,greater<t>>
#define V(t) vector<t>
#define rep(i,n) for(int(i)=0; i<n; ++i)
#define rer(i,l,r) for(int i=l; i<=r; i++)
#define gnr(i,l,r) for(int i=r; i>=l; i--)
#define eb emplace_back
#define pri1(a) cout<<(a)<<'\n'
#define pri2(a,n) {rep(pri2i,n-1)cout<<a[pri2i]<<' '; cout<<a[n-1]<<'\n';}
#define prip(p) cout<<p.fi<<' '<<p.se<<'\n'
template<class T> inline bool cmax(T& a, T b) { if (a < b) { a = b; return 1; } return 0; }
template<class T> inline bool cmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; }

int n,m,_,x,y,q;
string s,sb;
bool ok;
char cf,cb;

int main(){
  cin.tie(nullptr); ios::sync_with_stdio(0);
  //cout<<fixed<<setprecision(20);
  
  cin>>n>>s; sb.resize(n);
  if(s[0]=='o'){
    sb[0]=sb[1]='S';
    rer(i,1,n-2){
      if(s[i]=='o'){
        if(sb[i]=='S')sb[i+1]=sb[i-1];
        else sb[i+1]=sb[i-1]=='S'?'W':'S';
      }else{
        if(sb[i]=='S')sb[i+1]=sb[i-1]=='S'?'W':'S';
        else sb[i+1]=sb[i-1];
      }
    }
    if(sb[n-1]=='S'&&(s[n-1]=='o'&&sb[n-2]==sb[0]||s[n-1]=='x'&&sb[n-2]!=sb[0])){pri1(sb); return 0;}

    sb[0]='S',sb[1]='W';
    rer(i,1,n-2){
      if(s[i]=='o'){
        if(sb[i]=='S')sb[i+1]=sb[i-1];
        else sb[i+1]=sb[i-1]=='S'?'W':'S';
      }else{
        if(sb[i]=='S')sb[i+1]=sb[i-1]=='S'?'W':'S';
        else sb[i+1]=sb[i-1];
      }
    }
    if(sb[n-1]=='W'&&(s[n-1]=='o'&&sb[n-2]!=sb[0]||s[n-1]=='x'&&sb[n-2]==sb[0])){pri1(sb); return 0;}

    sb[0]='W',sb[1]='S';
    rer(i,1,n-2){
      if(s[i]=='o'){
        if(sb[i]=='S')sb[i+1]=sb[i-1];
        else sb[i+1]=sb[i-1]=='S'?'W':'S';
      }else{
        if(sb[i]=='S')sb[i+1]=sb[i-1]=='S'?'W':'S';
        else sb[i+1]=sb[i-1];
      }
    }
    if(sb[n-1]=='W'&&(s[n-1]=='o'&&sb[n-2]!=sb[0]||s[n-1]=='x'&&sb[n-2]==sb[0])){pri1(sb); return 0;}

    sb[0]=sb[1]='W';
    rer(i,1,n-2){
      if(s[i]=='o'){
        if(sb[i]=='S')sb[i+1]=sb[i-1];
        else sb[i+1]=sb[i-1]=='S'?'W':'S';
      }else{
        if(sb[i]=='S')sb[i+1]=sb[i-1]=='S'?'W':'S';
        else sb[i+1]=sb[i-1];
      }
    }
    if(sb[n-1]=='S'&&(s[n-1]=='o'&&sb[n-2]==sb[0]||s[n-1]=='x'&&sb[n-2]!=sb[0])){pri1(sb); return 0;}
  }else{
    sb[0]=sb[1]='S';
    rer(i,1,n-2){
      if(s[i]=='o'){
        if(sb[i]=='S')sb[i+1]=sb[i-1];
        else sb[i+1]=sb[i-1]=='S'?'W':'S';
      }else{
        if(sb[i]=='S')sb[i+1]=sb[i-1]=='S'?'W':'S';
        else sb[i+1]=sb[i-1];
      }
    }
    if(sb[n-1]=='W'&&(s[n-1]=='o'&&sb[n-2]!=sb[0]||s[n-1]=='x'&&sb[n-2]==sb[0])){pri1(sb); return 0;}

    sb[0]='S',sb[1]='W';
    rer(i,1,n-2){
      if(s[i]=='o'){
        if(sb[i]=='S')sb[i+1]=sb[i-1];
        else sb[i+1]=sb[i-1]=='S'?'W':'S';
      }else{
        if(sb[i]=='S')sb[i+1]=sb[i-1]=='S'?'W':'S';
        else sb[i+1]=sb[i-1];
      }
    }
    if(sb[n-1]=='S'&&(s[n-1]=='o'&&sb[n-2]==sb[0]||s[n-1]=='x'&&sb[n-2]!=sb[0])){pri1(sb); return 0;}

    sb[0]='W',sb[1]='S';
    rer(i,1,n-2){
      if(s[i]=='o'){
        if(sb[i]=='S')sb[i+1]=sb[i-1];
        else sb[i+1]=sb[i-1]=='S'?'W':'S';
      }else{
        if(sb[i]=='S')sb[i+1]=sb[i-1]=='S'?'W':'S';
        else sb[i+1]=sb[i-1];
      }
    }
    if(sb[n-1]=='S'&&(s[n-1]=='o'&&sb[n-2]==sb[0]||s[n-1]=='x'&&sb[n-2]!=sb[0])){pri1(sb); return 0;}

    sb[0]=sb[1]='W';
    rer(i,1,n-2){
      if(s[i]=='o'){
        if(sb[i]=='S')sb[i+1]=sb[i-1];
        else sb[i+1]=sb[i-1]=='S'?'W':'S';
      }else{
        if(sb[i]=='S')sb[i+1]=sb[i-1]=='S'?'W':'S';
        else sb[i+1]=sb[i-1];
      }
    }
    if(sb[n-1]=='W'&&(s[n-1]=='o'&&sb[n-2]!=sb[0]||s[n-1]=='x'&&sb[n-2]==sb[0])){pri1(sb); return 0;}
  }
  pri1(-1);
}

Measured memory_bytes: 640