//I_F_A
#include "bits/stdc++.h"
using namespace std;
	
long long n;
char arr[100010];
vector<long long> visited(100010);
bool wrong = 0;

long long back111(long long index){

	index = index - 1;
	if(index == 0)
		index = n;
	return index;	
}

long long front111(long long index){

	index = index + 1;
	if(index == n+1)
		return 1;
	return index;
}

void init(){

	for(long long i=0;i<=n;i++)
		visited[i] = -1;
}

void output(){

	for(long long i=1;i<=n;i++){

		if(visited[i] == 1)
			cout << 'S';
		else
			cout << 'W';
	}
}

bool func(){

	for(long long i=1;i<=n;i++){

		long long b1Index = back111(i);
		long long f1Index = front111(i);

		if(visited[i] == 1){

			if(arr[i] == 'o'){

				if(visited[b1Index] == -1){

					visited[b1Index] = visited[f1Index];
				}
				else if(visited[f1Index] == -1){

					visited[f1Index] = visited[b1Index];
				}
				else if(visited[f1Index] != visited[b1Index]){

					return 0;
				}
			}
			else{

				if(visited[b1Index] == -1){

					if(visited[f1Index] == 1)
						visited[b1Index] = 2;
					else
						visited[b1Index] = 1;
				}
				else if(visited[f1Index] == -1){

					if(visited[b1Index] == 1)
						visited[f1Index] = 2;
					else
						visited[f1Index] = 1;
				}
				else if(visited[f1Index] == visited[b1Index]){

					return 0;
				}

			}
		}
		else{

			if(arr[i] == 'x'){

				if(visited[b1Index] == -1){

					visited[b1Index] = visited[f1Index];
				}
				else if(visited[f1Index] == -1){

					visited[f1Index] = visited[b1Index];
				}
				else if(visited[f1Index] != visited[b1Index]){

					return 0;
				}
			}
			else{

				if(visited[b1Index] == -1){

					if(visited[f1Index] == 1)
						visited[b1Index] = 2;
					else
						visited[b1Index] = 1;
				}
				else if(visited[f1Index] == -1){

					if(visited[b1Index] == 1)
						visited[f1Index] = 2;
					else
						visited[f1Index] = 1;
				}
				else if(visited[f1Index] == visited[b1Index]){

					return 0;
				}

			}

		}
	}
	return 1;
}

int main(){

	cin >> n;

	for(long long i=1;i<=n;i++)
		cin >> arr[i];

	//Sheep

		
		if(arr[1] == 'o'){
		
			init();
			visited[1] = 1;
			wrong = 0;
			visited[n] = 1;
			visited[2] = 1;

			if(func()){

				output();
				return 0;
			}

			init();
			visited[1] = 1;
			visited[n] = 2;
			visited[2] = 2;
			wrong = 0;

			if(func()){

				output();
				return 0;
			}
		}
		else{

			init();
			visited[1] = 1;
			wrong = 0;
			visited[n] = 1;
			visited[2] = 2;

			if(func()){

				output();
				return 0;
			}

			init();
			visited[1] = 1;
			wrong = 0;
			visited[n] = 2;
			visited[2] = 1;

			if(func()){

				output();
				return 0;
			}
		}


	//
		if(arr[1] == 'o'){
		
			init();
			visited[1] = 2;
			wrong = 0;
			visited[n] = 2;
			visited[2] = 1;

			if(func()){

				output();
				return 0;
			}

			init();
			visited[1] = 2;
			visited[n] = 1;
			visited[2] = 2;
			wrong = 0;

			if(func()){

				output();
				return 0;
			}
		}
		else{

			init();
			visited[1] = 2;
			wrong = 0;
			visited[n] = 1;
			visited[2] = 1;

			if(func()){

				output();
				return 0;
			}

			init();
			visited[1] = 2;
			wrong = 0;
			visited[n] = 2;
			visited[2] = 2;

			if(func()){

				output();
				return 0;
			}
		}

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

Measured memory_bytes: 1152