#include<iostream>
using namespace std;
typedef long long LL;
const int N = 1e5;
int a[N];
int info[N];
bool check_feasibility(int n)
{
	for(int i = 2; i < n; i++)
		a[i] = a[i-2]^a[i-1]^info[i-1];
	if((a[n-2]^a[n-1]^a[0])!=info[n-1] || (a[n-1]^a[0]^a[1])!=info[0])
		return false;
	else
		return true;
}
bool solve(int n)
{
	for(int i = 0; i <= 1; i++)
		for(int j = 0; j <= 1; j++)
		{
			a[0] = i;
			a[1] = j;
			if(check_feasibility(n))
				return true;
		}
	return false;
}
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);

	int n; cin >> n;
	for(int i = 0; i < n; i++)
	{
		char c; cin >> c;
		info[i] = c=='x';
	}
	if(solve(n))
	{
		for(int i = 0; i < n; i++)
			cout<<(a[i] ? "W" : "S");
		cout<<endl;
	}
	else
		cout<<-1<<endl;
	
	cout<<flush;
	return 0;
}
#include <iostream>
#include <string>
#include <vector>
#include <deque>
#include <queue>
#include <algorithm>
#include <set>
#include <map>
#include <bitset>
#include <cmath>
#include <functional>
#define vv(a, b, c, d) vector<vector<d> >(a, vector<d>(b, c))
#define vvi vector<vector<int> >
#define vvl vector<vector<ll> >
#define vll vector<ll>
#define rep(c, a, b) for(ll c=a;c<b;c++)
#define re(c, b) for(ll c=0;c<b;c++)
typedef long long int ll;
typedef long double ld;
using namespace std;

int main(int argc, char const *argv[]) {
  ll n;std::cin >> n;
  string t, s;std::cin >> s;
  //SS

  char end='&';
  char pre = 'S';
  t = "S";
  re(i, s.size()){
    int k = (s[i]=='o'?1:-1);
    if(t[i]=='W') k*=-1;
    int b = ((i==0?pre:t[i-1])=='S'?1:-1);
    if(k==-1) b*=-1;
    if(b==1){
      if(i==s.size()-1){
        end = 'S';
        break;
      }
      t+='S';
    }else {
      if(i==s.size()-1){
        end = 'W';
        break;
      }
      t+='W';
    }
  }
  if(pre==t[n-1]&&t[0]==end){
    std::cout << t << '\n';
    return 0;
  }
  //SW
  pre = 'S';
  t = "W";
  re(i, s.size()){
    int k = (s[i]=='o'?1:-1);
    if(t[i]=='W') k*=-1;
    int b = ((i==0?pre:t[i-1])=='S'?1:-1);
    if(k==-1) b*=-1;
    if(b==1){
      if(i==s.size()-1){
        end = 'S';
        break;
      }
      t+='S';
    }else {
      if(i==s.size()-1){
        end = 'W';
        break;
      }
      t+='W';
    }
  }
  if(pre==t[n-1]&&t[0]==end){
    std::cout << t << '\n';
    return 0;
  }
  //WW
  pre = 'W';
  t = "W";
  re(i, s.size()){
    int k = (s[i]=='o'?1:-1);
    if(t[i]=='W') k*=-1;
    int b = ((i==0?pre:t[i-1])=='S'?1:-1);
    if(k==-1) b*=-1;
    if(b==1){
      if(i==s.size()-1){
        end = 'S';
        break;
      }
      t+='S';
    }else {
      if(i==s.size()-1){
        end = 'W';
        break;
      }
      t+='W';
    }
  }
  if(pre==t[n-1]&&t[0]==end){
    std::cout << t << '\n';
    return 0;
  }
  //WS
  pre = 'W';
  t = "S";
  re(i, s.size()){
    int k = (s[i]=='o'?1:-1);
    if(t[i]=='W') k*=-1;
    int b = ((i==0?pre:t[i-1])=='S'?1:-1);
    if(k==-1) b*=-1;
    if(b==1){
      if(i==s.size()-1){
        end = 'S';
        break;
      }
      t+='S';
    }else {
      if(i==s.size()-1){
        end = 'W';
        break;
      }
      t+='W';
    }
  }
  if(pre==t[n-1]&&t[0]==end){
    std::cout << t << '\n';
    return 0;
  }
  std::cout << -1 << '\n';
  return 0;
}
