import std.stdio;
import std.conv, std.array, std.algorithm, std.string;
import std.math, std.random, std.range, std.datetime;
import std.bigint;

int n;
string s;
int[] os;
void main(){
	n = readln.chomp.to!int;
	s = readln.chomp;
	
	os = s.map!(x => (x == 'o')? 1: 0).array;
	
	int[] sheeps;
	
	char[] ans = cast(char[]) "-1";
	sheeps = getSheeps(0, 0);
	if(sheeps.isOK) ans = sheeps.map!(x => x? 'S': 'W').array;
	sheeps = getSheeps(0, 1);
	if(sheeps.isOK) ans = sheeps.map!(x => x? 'S': 'W').array;
	sheeps = getSheeps(1, 0);
	if(sheeps.isOK) ans = sheeps.map!(x => x? 'S': 'W').array;
	sheeps = getSheeps(1, 1);
	if(sheeps.isOK) ans = sheeps.map!(x => x? 'S': 'W').array;
	
	ans.writeln;
	}

int[] getSheeps(int a1, int a2){
	int[] sheeps = [a1, a2];
	sheeps.length = n;
	for(int i = 2; i < n; i ++){
		if((sheeps[i - 2] + sheeps[i - 1] + os[i - 1]) % 2){
			sheeps[i] = 1;
			}
		else sheeps[i] = 0;
		}
	return sheeps;
	}

bool isOK(int[] sheeps){
	if((sheeps[n - 2] + sheeps[n - 1] + sheeps[0] + os[n - 1]) % 2)
			return false;
	if((sheeps[n - 1] + sheeps[0] + sheeps[1] + os[0]) % 2)
			return false;
	return true;
	}