#include "bits/stdc++.h"
using namespace std;

#define repl(i,a,b) for(int i=(int)(a);i<(int)(b);i++)
#define rep(i,n) repl(i,0,n)
#define replrev(i,a,b) for(int i=(int)(b)-1;i>=(int)(a);i--)
#define reprev(i,n) replrev(i,0,n)
#define repi(itr,ds) for(auto itr = ds.begin(); itr != ds.end(); ++itr)
#define mp make_pair
#define INF 2000000000
#define MOD 1000000007
#define PI 3.1415926536
typedef long long ll;
typedef pair<int, int> P;

int main() {
	int N;
	string s;
	cin >> N >> s;
	vector<char> ans(N);
	ans[0] = 'S';
	ans[1] = 'S';
	repl(i, 1, N - 1) {
		if (ans[i] == 'S') {
			if (s[i] == 'o') {
				ans[i + 1] = ans[i - 1];
			}
			else {
				ans[i + 1] = ans[i - 1] == 'S' ? 'W' : 'S';
			}
		}
		else {
			if (s[i] == 'x') {
				ans[i + 1] = ans[i - 1];
			}
			else {
				ans[i + 1] = ans[i - 1] == 'S' ? 'W' : 'S';
			}
		}
	}

	bool flag = true;

	if (ans[0] == 'S') {
		if (s[0] == 'o') {
			if (ans[N - 1] != ans[1]) {
				flag = false;
			}
		}
		else {
			if (ans[N - 1] != (ans[1] == 'S' ? 'W' : 'S')) {
				flag = false;
			}
		}
	}
	else {
		if (s[0] == 'x') {
			if (ans[N - 1] != ans[1]) {
				flag = false;
			}
		}
		else {
			if (ans[N - 1] != (ans[1] == 'S' ? 'W' : 'S')) {
				flag = false;
			}
		}
	}
	if (ans[N - 1] == 'S') {
		if (s[N - 1] == 'o') {
			if (ans[0] != ans[N - 2]) {
				flag = false;
			}
		}
		else {
			if (ans[0] != (ans[N - 2] == 'S' ? 'W' : 'S')) {
				flag = false;
			}
		}
	}
	else {
		if (s[N - 1] == 'x') {
			if (ans[0] != ans[N - 2]) {
				flag = false;
			}
		}
		else {
			if (ans[0] != (ans[N - 2] == 'S' ? 'W' : 'S')) {
				flag = false;
			}
		}
	}

	if (flag) {
		rep(i, N) {
			cout << ans[i];
		}
		cout << endl;
		return 0;
	}

	ans[0] = 'S';
	ans[1] = 'W';
	repl(i, 1, N - 1) {
		if (ans[i] == 'S') {
			if (s[i] == 'o') {
				ans[i + 1] = ans[i - 1];
			}
			else {
				ans[i + 1] = ans[i - 1] == 'S' ? 'W' : 'S';
			}
		}
		else {
			if (s[i] == 'x') {
				ans[i + 1] = ans[i - 1];
			}
			else {
				ans[i + 1] = ans[i - 1] == 'S' ? 'W' : 'S';
			}
		}
	}

	flag = true;

	if (ans[0] == 'S') {
		if (s[0] == 'o') {
			if (ans[N - 1] != ans[1]) {
				flag = false;
			}
		}
		else {
			if (ans[N - 1] != (ans[1] == 'S' ? 'W' : 'S')) {
				flag = false;
			}
		}
	}
	else {
		if (s[0] == 'x') {
			if (ans[N - 1] != ans[1]) {
				flag = false;
			}
		}
		else {
			if (ans[N - 1] != (ans[1] == 'S' ? 'W' : 'S')) {
				flag = false;
			}
		}
	}
	if (ans[N - 1] == 'S') {
		if (s[N - 1] == 'o') {
			if (ans[0] != ans[N - 2]) {
				flag = false;
			}
		}
		else {
			if (ans[0] != (ans[N - 2] == 'S' ? 'W' : 'S')) {
				flag = false;
			}
		}
	}
	else {
		if (s[N - 1] == 'x') {
			if (ans[0] != ans[N - 2]) {
				flag = false;
			}
		}
		else {
			if (ans[0] != (ans[N - 2] == 'S' ? 'W' : 'S')) {
				flag = false;
			}
		}
	}
	if (flag) {
		rep(i, N) {
			cout << ans[i];
		}
		cout << endl;
		return 0;
	}
	ans[0] = 'W';
	ans[1] = 'S';
	repl(i, 1, N - 1) {
		if (ans[i] == 'S') {
			if (s[i] == 'o') {
				ans[i + 1] = ans[i - 1];
			}
			else {
				ans[i + 1] = ans[i - 1] == 'S' ? 'W' : 'S';
			}
		}
		else {
			if (s[i] == 'x') {
				ans[i + 1] = ans[i - 1];
			}
			else {
				ans[i + 1] = ans[i - 1] == 'S' ? 'W' : 'S';
			}
		}
	}

	flag = true;

	if (ans[0] == 'S') {
		if (s[0] == 'o') {
			if (ans[N - 1] != ans[1]) {
				flag = false;
			}
		}
		else {
			if (ans[N - 1] != (ans[1] == 'S' ? 'W' : 'S')) {
				flag = false;
			}
		}
	}
	else {
		if (s[0] == 'x') {
			if (ans[N - 1] != ans[1]) {
				flag = false;
			}
		}
		else {
			if (ans[N - 1] != (ans[1] == 'S' ? 'W' : 'S')) {
				flag = false;
			}
		}
	}
	if (ans[N - 1] == 'S') {
		if (s[N - 1] == 'o') {
			if (ans[0] != ans[N - 2]) {
				flag = false;
			}
		}
		else {
			if (ans[0] != (ans[N - 2] == 'S' ? 'W' : 'S')) {
				flag = false;
			}
		}
	}
	else {
		if (s[N - 1] == 'x') {
			if (ans[0] != ans[N - 2]) {
				flag = false;
			}
		}
		else {
			if (ans[0] != (ans[N - 2] == 'S' ? 'W' : 'S')) {
				flag = false;
			}
		}
	}
	if (flag) {
		rep(i, N) {
			cout << ans[i];
		}
		cout << endl;
		return 0;
	}
	ans[0] = 'W';
	ans[1] = 'W';
	repl(i, 1, N - 1) {
		if (ans[i] == 'S') {
			if (s[i] == 'o') {
				ans[i + 1] = ans[i - 1];
			}
			else {
				ans[i + 1] = ans[i - 1] == 'S' ? 'W' : 'S';
			}
		}
		else {
			if (s[i] == 'x') {
				ans[i + 1] = ans[i - 1];
			}
			else {
				ans[i + 1] = ans[i - 1] == 'S' ? 'W' : 'S';
			}
		}
	}

	flag = true;

	if (ans[0] == 'S') {
		if (s[0] == 'o') {
			if (ans[N - 1] != ans[1]) {
				flag = false;
			}
		}
		else {
			if (ans[N - 1] != (ans[1] == 'S' ? 'W' : 'S')) {
				flag = false;
			}
		}
	}
	else {
		if (s[0] == 'x') {
			if (ans[N - 1] != ans[1]) {
				flag = false;
			}
		}
		else {
			if (ans[N - 1] != (ans[1] == 'S' ? 'W' : 'S')) {
				flag = false;
			}
		}
	}
	if (ans[N - 1] == 'S') {
		if (s[N - 1] == 'o') {
			if (ans[0] != ans[N - 2]) {
				flag = false;
			}
		}
		else {
			if (ans[0] != (ans[N - 2] == 'S' ? 'W' : 'S')) {
				flag = false;
			}
		}
	}
	else {
		if (s[N - 1] == 'x') {
			if (ans[0] != ans[N - 2]) {
				flag = false;
			}
		}
		else {
			if (ans[0] != (ans[N - 2] == 'S' ? 'W' : 'S')) {
				flag = false;
			}
		}
	}
	if (flag) {
		rep(i, N) {
			cout << ans[i];
		}
		cout << endl;
		return 0;
	}
	else {
		cout << -1 << endl;
	}
	return 0;
}

Measured memory_bytes: 512