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

#define int long long

int n;
int f=0;
string s="";
string a="";

//int dp[100002][2][2][2];

int slv(int now,int b1,int b2,int fir,string t);

main(){
	cin>>n;
	cin>>s;
	//for(int i=0;i<100001;i++)for(int j=0;j<2;j++)for(int k=0;k<2;k++)for(int l=0;l<2;l++)dp[i][j][k][l]=-1;
	int tf=slv(0,-1,-1,-1,"");
	if(f==1 || tf==1)cout<<a<<endl;
	else cout<<"-1"<<endl;
	return(0);
}

// 0-Hituji 1-Ookami

int slv(int now,int b1,int b2,int fir,string t){
	//cout<<now<<" "<<b1<<" "<<b2<<" "<<fir<<endl;

	if(f==1)return(1);

	if(now==n){
		//cout<<t<<endl;
		//cout<<b2<<" "<<b1<<" "<<fir<<endl;
		if(s[now-1]=='o'){
			if(b1==0){
					if((b2==0 && fir==0) || (b2==1 && fir==1)){
					if(fir==0){
						if(s[0]=='o' && t[1]=='S'){a=t;f=1;return(1);}
						if(s[0]=='x' && t[1]=='W'){a=t;f=1;return(1);}
					}
					else{
						if(s[0]=='o' && t[1]=='W'){a=t;f=1;return(1);}
						if(s[0]=='x' && t[1]=='S'){a=t;f=1;return(1);}
					}
				}
				return(0);
			}	
			else{
				if((b2==0 && fir==1) || (b2==1 && fir==0)){
					if(fir==0){
						if(s[0]=='o' && t[1]=='W'){a=t;f=1;return(1);}
						if(s[0]=='x' && t[1]=='S'){a=t;f=1;return(1);}
					}
					else{
						if(s[0]=='o' && t[1]=='S'){a=t;f=1;return(1);}
						if(s[0]=='x' && t[1]=='W'){a=t;f=1;return(1);}
					}
				}
				return(0);
			}
		}
		if(s[now-1]=='x'){
			if(b1==0){
				if((b2==0 && fir==1) || (b2==1 && fir==0)){
					if(fir==0){
						if(s[0]=='o' && t[1]=='S'){a=t;f=1;return(1);}
						if(s[0]=='x' && t[1]=='W'){a=t;f=1;return(1);}
					}
					else{
						if(s[0]=='o' && t[1]=='W'){a=t;f=1;return(1);}
						if(s[0]=='x' && t[1]=='S'){a=t;f=1;return(1);}
					}
				}
				return(0);
			}
			else{
				if((b2==0 && fir==0) || (b2==1 && fir==1)){
					if(fir==0){
						if(s[0]=='o' && t[1]=='W'){a=t;f=1;return(1);}
						if(s[0]=='x' && t[1]=='S'){a=t;f=1;return(1);}
					}
					else{
						if(s[0]=='o' && t[1]=='S'){a=t;f=1;return(1);}
						if(s[0]=='x' && t[1]=='W'){a=t;f=1;return(1);}
					}
				}
				return(0);
			}

		}
		return(0);
	}
	int r=0;
	if(now==0){
		r=max(slv(now+1,0,-1,0,t+'S'),slv(now+1,1,-1,1,t+'W'));
	}
	if(now==1){
		r=max(slv(now+1,0,b1,fir,t+'S'),slv(now+1,1,b1,fir,t+'W'));
	}

	if(now>1){
		while(now<n){
	
			if(b2==0 && b1==0){
				if(s[now-1]=='o')t+='S';
				else {t+='W';b1=1;}
			}
			else if(b2==1 && b1==1){
				if(s[now-1]=='o'){t+='S';b1=0;b2=1;}
				else {t+='W';b1=b2=1;}
			}
			else if(b2==0 && b1==1){
				if(s[now-1]=='o'){t+='W';b1=b2=1;}
				else {t+='S';b1=0;b2=1;}
			}
			else if(b2==1 && b1==0){
				if(s[now-1]=='o'){t+='W';b1=1;b2=0;}
				else {t+='S';b1=b2=0;}
			}

			now++;
		}
		r=slv(n,b1,b2,fir,t);
	}
	/*
	if(b2==0 && b1==0){
		if(s[now-1]=='o')r=max(r,slv(now+1,0,0,fir,t+'S'));
		else r=max(r,slv(now+1,1,0,fir,t+'W'));
	}
	if(b2==1 && b1==1){
		if(s[now-1]=='o'){r=max(r,slv(now+1,0,1,fir,t+'S'));}
		else r=max(r,slv(now+1,1,1,fir,t+'W'));
	}
	if(b2==0 && b1==1){
		if(s[now-1]=='o')r=max(r,slv(now+1,1,1,fir,t+'W'));
		else r=max(r,slv(now+1,0,1,fir,t+'S'));
	}
	if(b2==1 && b1==0){
		if(s[now-1]=='o')r=max(r,slv(now+1,1,0,fir,t+'W'));
		else r=max(r,slv(now+1,0,0,fir,t+'S'));
	}
	*/

	//if(now>1)return(dp[now][b1][b2][fir]=r);
	return(r);
}


Measured memory_bytes: 904