#include<iostream>
#include<string>
#include<algorithm>
#include<vector>
#include<queue>
#include<map>
#include<math.h>
#include<iomanip>
#include<set>
#include<numeric>
#include<cstring>
#include<cstdio>
#include<functional>
#include<bitset>
#include<limits.h>
#include<cassert>
#include<iterator>
#include<complex>
#include<stack>
#include<sstream>
#include<iterator>
#include<list>

using namespace std;

typedef  long long int lint;

#define rep(i, n) for (lint i = 0; i < n; i++)
#define sort(v) sort((v).begin(), (v).end())
#define reverse(v) reverse((v).begin(), (v).end())
#define upper(v,hoge) upper_bound(v.begin(),v.end(),hoge)
#define lower(v,hoge) lower_bound(v.begin(),v.end(),hoge)
#define mp make_pair
#define enld endl

int main() {
	lint N;
	cin >> N;
	string S;
	cin >> S;

	vector<char>A(N);
	char a;
	



	if (S[0] == 'o') {
		/**********/
		rep(i, N) {
			A[i] = '*';
		}
		a = '*';
		A[0] = 'S';
		a = 'S';
		A[1] = 'S';
		for (lint i = 1; i < N-1; i++) {
			if (S[i] == 'o') {
				if (A[i] == 'S') {
					if (A[i - 1] == 'S') {
						A[i + 1] = 'S';
					}
					else if (A[i - 1] == 'W') {
						A[i + 1] = 'W';
					}
				}
				else if (A[i] == 'W') {
					if (A[i - 1] == 'S') {
						A[i + 1] = 'W';
					}
					else if (A[i - 1] == 'W') {
						A[i + 1] = 'S';
					}
				}
			}
			else if (S[i] == 'x') {
				if (A[i] == 'S') {
					if (A[i - 1] == 'S') {
						A[i + 1] = 'W';
					}
					else if (A[i - 1] == 'W') {
						A[i + 1] = 'S';
					}
				}
				else if (A[i] == 'W') {
					if (A[i - 1] == 'S') {
						A[i + 1] = 'S';
					}
					else if (A[i - 1] == 'W') {
						A[i + 1] = 'W';
					}
				}
			}
		}

		char b;
		if (S[N - 1] == 'o') {
			if (A[N - 1] == 'S') {
				if (A[N - 2] == 'S') {
					b = 'S';
				}
				else if (A[N - 2] == 'W') {
					b = 'W';
				}
			}
			else if (A[N - 1] == 'W') {
				if (A[N - 2] == 'S') {
					b = 'W';
				}
				else if (A[N - 2] == 'W') {
					b = 'S';
				}
			}
		}
		else if (S[N - 1] == 'x') {
			if (A[N - 1] == 'S') {
				if (A[N - 2] == 'S') {
					b = 'W';
				}
				else if (A[N - 2] == 'W') {
					b = 'S';
				}
			}
			else if (A[N - 1] == 'W') {
				if (A[N - 2] == 'S') {
					b = 'S';
				}
				else if (A[N - 2] == 'W') {
					b = 'W';
				}
			}
		}

		if (A[N - 1] == a) {
			if (A[0] == b) {
				rep(i, N) {
					cout << A[i];
				}
				cout << enld;
				return 0;
			}
		}

		/**********/
		rep(i, N) {
			A[i] = '*';
		}
		a = '*';
		A[0] = 'S';
		a = 'W';
		A[1] = 'W';
		for (lint i = 1; i < N - 1; i++) {
			if (S[i] == 'o') {
				if (A[i] == 'S') {
					if (A[i - 1] == 'S') {
						A[i + 1] = 'S';
					}
					else if (A[i - 1] == 'W') {
						A[i + 1] = 'W';
					}
				}
				else if (A[i] == 'W') {
					if (A[i - 1] == 'S') {
						A[i + 1] = 'W';
					}
					else if (A[i - 1] == 'W') {
						A[i + 1] = 'S';
					}
				}
			}
			else if (S[i] == 'x') {
				if (A[i] == 'S') {
					if (A[i - 1] == 'S') {
						A[i + 1] = 'W';
					}
					else if (A[i - 1] == 'W') {
						A[i + 1] = 'S';
					}
				}
				else if (A[i] == 'W') {
					if (A[i - 1] == 'S') {
						A[i + 1] = 'S';
					}
					else if (A[i - 1] == 'W') {
						A[i + 1] = 'W';
					}
				}
			}
		}
		
		if (S[N - 1] == 'o') {
			if (A[N - 1] == 'S') {
				if (A[N - 2] == 'S') {
					b = 'S';
				}
				else if (A[N - 2] == 'W') {
					b = 'W';
				}
			}
			else if (A[N - 1] == 'W') {
				if (A[N - 2] == 'S') {
					b = 'W';
				}
				else if (A[N - 2] == 'W') {
					b = 'S';
				}
			}
		}
		else if (S[N - 1] == 'x') {
			if (A[N - 1] == 'S') {
				if (A[N - 2] == 'S') {
					b = 'W';
				}
				else if (A[N - 2] == 'W') {
					b = 'S';
				}
			}
			else if (A[N - 1] == 'W') {
				if (A[N - 2] == 'S') {
					b = 'S';
				}
				else if (A[N - 2] == 'W') {
					b = 'W';
				}
			}
		}

		if (A[N - 1] == a) {
			if (A[0] == b) {
				rep(i, N) {
					cout << A[i];
				}
				cout << enld;
				return 0;
			}
		}

		/**********/
		rep(i, N) {
			A[i] = '*';
		}
		a = '*';
		A[0] = 'W';
		a = 'S';
		A[1] = 'W';
		for (lint i = 1; i < N - 1; i++) {
			if (S[i] == 'o') {
				if (A[i] == 'S') {
					if (A[i - 1] == 'S') {
						A[i + 1] = 'S';
					}
					else if (A[i - 1] == 'W') {
						A[i + 1] = 'W';
					}
				}
				else if (A[i] == 'W') {
					if (A[i - 1] == 'S') {
						A[i + 1] = 'W';
					}
					else if (A[i - 1] == 'W') {
						A[i + 1] = 'S';
					}
				}
			}
			else if (S[i] == 'x') {
				if (A[i] == 'S') {
					if (A[i - 1] == 'S') {
						A[i + 1] = 'W';
					}
					else if (A[i - 1] == 'W') {
						A[i + 1] = 'S';
					}
				}
				else if (A[i] == 'W') {
					if (A[i - 1] == 'S') {
						A[i + 1] = 'S';
					}
					else if (A[i - 1] == 'W') {
						A[i + 1] = 'W';
					}
				}
			}
		}
		
		if (S[N - 1] == 'o') {
			if (A[N - 1] == 'S') {
				if (A[N - 2] == 'S') {
					b = 'S';
				}
				else if (A[N - 2] == 'W') {
					b = 'W';
				}
			}
			else if (A[N - 1] == 'W') {
				if (A[N - 2] == 'S') {
					b = 'W';
				}
				else if (A[N - 2] == 'W') {
					b = 'S';
				}
			}
		}
		else if (S[N - 1] == 'x') {
			if (A[N - 1] == 'S') {
				if (A[N - 2] == 'S') {
					b = 'W';
				}
				else if (A[N - 2] == 'W') {
					b = 'S';
				}
			}
			else if (A[N - 1] == 'W') {
				if (A[N - 2] == 'S') {
					b = 'S';
				}
				else if (A[N - 2] == 'W') {
					b = 'W';
				}
			}
		}

		if (A[N - 1] == a) {
			if (A[0] == b) {
				rep(i, N) {
					cout << A[i];
				}
				cout << enld;
				return 0;
			}
		}

		/**********/
		rep(i, N) {
			A[i] = '*';
		}
		a = '*';
		A[0] = 'W';
		a = 'W';
		A[1] = 'S';
		for (lint i = 1; i < N - 1; i++) {
			if (S[i] == 'o') {
				if (A[i] == 'S') {
					if (A[i - 1] == 'S') {
						A[i + 1] = 'S';
					}
					else if (A[i - 1] == 'W') {
						A[i + 1] = 'W';
					}
				}
				else if (A[i] == 'W') {
					if (A[i - 1] == 'S') {
						A[i + 1] = 'W';
					}
					else if (A[i - 1] == 'W') {
						A[i + 1] = 'S';
					}
				}
			}
			else if (S[i] == 'x') {
				if (A[i] == 'S') {
					if (A[i - 1] == 'S') {
						A[i + 1] = 'W';
					}
					else if (A[i - 1] == 'W') {
						A[i + 1] = 'S';
					}
				}
				else if (A[i] == 'W') {
					if (A[i - 1] == 'S') {
						A[i + 1] = 'S';
					}
					else if (A[i - 1] == 'W') {
						A[i + 1] = 'W';
					}
				}
			}
		}
		
		if (S[N - 1] == 'o') {
			if (A[N - 1] == 'S') {
				if (A[N - 2] == 'S') {
					b = 'S';
				}
				else if (A[N - 2] == 'W') {
					b = 'W';
				}
			}
			else if (A[N - 1] == 'W') {
				if (A[N - 2] == 'S') {
					b = 'W';
				}
				else if (A[N - 2] == 'W') {
					b = 'S';
				}
			}
		}
		else if (S[N - 1] == 'x') {
			if (A[N - 1] == 'S') {
				if (A[N - 2] == 'S') {
					b = 'W';
				}
				else if (A[N - 2] == 'W') {
					b = 'S';
				}
			}
			else if (A[N - 1] == 'W') {
				if (A[N - 2] == 'S') {
					b = 'S';
				}
				else if (A[N - 2] == 'W') {
					b = 'W';
				}
			}
		}

		if (A[N - 1] == a) {
			if (A[0] == b) {
				rep(i, N) {
					cout << A[i];
				}
				cout << enld;
				return 0;
			}
		}
		cout << -1 << enld;
	}



	else if (S[0] == 'x') {
	/**********/
	rep(i, N) {
		A[i] = '*';
	}
	a = '*';
	A[0] = 'S';
	a = 'S';
	A[1] = 'W';
	for (lint i = 1; i < N - 1; i++) {
		if (S[i] == 'o') {
			if (A[i] == 'S') {
				if (A[i - 1] == 'S') {
					A[i + 1] = 'S';
				}
				else if (A[i - 1] == 'W') {
					A[i + 1] = 'W';
				}
			}
			else if (A[i] == 'W') {
				if (A[i - 1] == 'S') {
					A[i + 1] = 'W';
				}
				else if (A[i - 1] == 'W') {
					A[i + 1] = 'S';
				}
			}
		}
		else if (S[i] == 'x') {
			if (A[i] == 'S') {
				if (A[i - 1] == 'S') {
					A[i + 1] = 'W';
				}
				else if (A[i - 1] == 'W') {
					A[i + 1] = 'S';
				}
			}
			else if (A[i] == 'W') {
				if (A[i - 1] == 'S') {
					A[i + 1] = 'S';
				}
				else if (A[i - 1] == 'W') {
					A[i + 1] = 'W';
				}
			}
		}
	}
	char b;
	if (S[N - 1] == 'o') {
		if (A[N - 1] == 'S') {
			if (A[N - 2] == 'S') {
				b = 'S';
			}
			else if (A[N - 2] == 'W') {
				b = 'W';
			}
		}
		else if (A[N - 1] == 'W') {
			if (A[N - 2] == 'S') {
				b = 'W';
			}
			else if (A[N - 2] == 'W') {
				b = 'S';
			}
		}
	}
	else if (S[N - 1] == 'x') {
		if (A[N - 1] == 'S') {
			if (A[N - 2] == 'S') {
				b = 'W';
			}
			else if (A[N - 2] == 'W') {
				b = 'S';
			}
		}
		else if (A[N - 1] == 'W') {
			if (A[N - 2] == 'S') {
				b = 'S';
			}
			else if (A[N - 2] == 'W') {
				b = 'W';
			}
		}
	}

	if (A[N - 1] == a) {
		if (A[0] == b) {
			rep(i, N) {
				cout << A[i];
			}
			cout << enld;
			return 0;
		}
	}

	/**********/
	rep(i, N) {
		A[i] = '*';
	}
	a = '*';
	A[0] = 'S';
	a = 'W';
	A[1] = 'S';
	for (lint i = 1; i < N - 1; i++) {
		if (S[i] == 'o') {
			if (A[i] == 'S') {
				if (A[i - 1] == 'S') {
					A[i + 1] = 'S';
				}
				else if (A[i - 1] == 'W') {
					A[i + 1] = 'W';
				}
			}
			else if (A[i] == 'W') {
				if (A[i - 1] == 'S') {
					A[i + 1] = 'W';
				}
				else if (A[i - 1] == 'W') {
					A[i + 1] = 'S';
				}
			}
		}
		else if (S[i] == 'x') {
			if (A[i] == 'S') {
				if (A[i - 1] == 'S') {
					A[i + 1] = 'W';
				}
				else if (A[i - 1] == 'W') {
					A[i + 1] = 'S';
				}
			}
			else if (A[i] == 'W') {
				if (A[i - 1] == 'S') {
					A[i + 1] = 'S';
				}
				else if (A[i - 1] == 'W') {
					A[i + 1] = 'W';
				}
			}
		}
	}
	
	if (S[N - 1] == 'o') {
		if (A[N - 1] == 'S') {
			if (A[N - 2] == 'S') {
				b = 'S';
			}
			else if (A[N - 2] == 'W') {
				b = 'W';
			}
		}
		else if (A[N - 1] == 'W') {
			if (A[N - 2] == 'S') {
				b = 'W';
			}
			else if (A[N - 2] == 'W') {
				b = 'S';
			}
		}
	}
	else if (S[N - 1] == 'x') {
		if (A[N - 1] == 'S') {
			if (A[N - 2] == 'S') {
				b = 'W';
			}
			else if (A[N - 2] == 'W') {
				b = 'S';
			}
		}
		else if (A[N - 1] == 'W') {
			if (A[N - 2] == 'S') {
				b = 'S';
			}
			else if (A[N - 2] == 'W') {
				b = 'W';
			}
		}
	}

	if (A[N - 1] == a) {
		if (A[0] == b) {
			rep(i, N) {
				cout << A[i];
			}
			cout << enld;
			return 0;
		}
	}

	/**********/
	rep(i, N) {
		A[i] = '*';
	}
	a = '*';
	A[0] = 'W';
	a = 'S';
	A[1] = 'S';
	for (lint i = 1; i < N - 1; i++) {
		if (S[i] == 'o') {
			if (A[i] == 'S') {
				if (A[i - 1] == 'S') {
					A[i + 1] = 'S';
				}
				else if (A[i - 1] == 'W') {
					A[i + 1] = 'W';
				}
			}
			else if (A[i] == 'W') {
				if (A[i - 1] == 'S') {
					A[i + 1] = 'W';
				}
				else if (A[i - 1] == 'W') {
					A[i + 1] = 'S';
				}
			}
		}
		else if (S[i] == 'x') {
			if (A[i] == 'S') {
				if (A[i - 1] == 'S') {
					A[i + 1] = 'W';
				}
				else if (A[i - 1] == 'W') {
					A[i + 1] = 'S';
				}
			}
			else if (A[i] == 'W') {
				if (A[i - 1] == 'S') {
					A[i + 1] = 'S';
				}
				else if (A[i - 1] == 'W') {
					A[i + 1] = 'W';
				}
			}
		}
	}
	
	if (S[N - 1] == 'o') {
		if (A[N - 1] == 'S') {
			if (A[N - 2] == 'S') {
				b = 'S';
			}
			else if (A[N - 2] == 'W') {
				b = 'W';
			}
		}
		else if (A[N - 1] == 'W') {
			if (A[N - 2] == 'S') {
				b = 'W';
			}
			else if (A[N - 2] == 'W') {
				b = 'S';
			}
		}
	}
	else if (S[N - 1] == 'x') {
		if (A[N - 1] == 'S') {
			if (A[N - 2] == 'S') {
				b = 'W';
			}
			else if (A[N - 2] == 'W') {
				b = 'S';
			}
		}
		else if (A[N - 1] == 'W') {
			if (A[N - 2] == 'S') {
				b = 'S';
			}
			else if (A[N - 2] == 'W') {
				b = 'W';
			}
		}
	}

	if (A[N - 1] == a) {
		if (A[0] == b) {
			rep(i, N) {
				cout << A[i];
			}
			cout << enld;
			return 0;
		}
	}

	/**********/
	rep(i, N) {
		A[i] = '*';
	}
	a = '*';
	A[0] = 'W';
	a = 'W';
	A[1] = 'W';
	for (lint i = 1; i < N - 1; i++) {
		if (S[i] == 'o') {
			if (A[i] == 'S') {
				if (A[i - 1] == 'S') {
					A[i + 1] = 'S';
				}
				else if (A[i - 1] == 'W') {
					A[i + 1] = 'W';
				}
			}
			else if (A[i] == 'W') {
				if (A[i - 1] == 'S') {
					A[i + 1] = 'W';
				}
				else if (A[i - 1] == 'W') {
					A[i + 1] = 'S';
				}
			}
		}
		else if (S[i] == 'x') {
			if (A[i] == 'S') {
				if (A[i - 1] == 'S') {
					A[i + 1] = 'W';
				}
				else if (A[i - 1] == 'W') {
					A[i + 1] = 'S';
				}
			}
			else if (A[i] == 'W') {
				if (A[i - 1] == 'S') {
					A[i + 1] = 'S';
				}
				else if (A[i - 1] == 'W') {
					A[i + 1] = 'W';
				}
			}
		}
	}
	
	if (S[N - 1] == 'o') {
		if (A[N - 1] == 'S') {
			if (A[N - 2] == 'S') {
				b = 'S';
			}
			else if (A[N - 2] == 'W') {
				b = 'W';
			}
		}
		else if (A[N - 1] == 'W') {
			if (A[N - 2] == 'S') {
				b = 'W';
			}
			else if (A[N - 2] == 'W') {
				b = 'S';
			}
		}
	}
	else if (S[N - 1] == 'x') {
		if (A[N - 1] == 'S') {
			if (A[N - 2] == 'S') {
				b = 'W';
			}
			else if (A[N - 2] == 'W') {
				b = 'S';
			}
		}
		else if (A[N - 1] == 'W') {
			if (A[N - 2] == 'S') {
				b = 'S';
			}
			else if (A[N - 2] == 'W') {
				b = 'W';
			}
		}
	}

	if (A[N - 1] == a) {
		if (A[0] == b) {
			rep(i, N) {
				cout << A[i];
			}
			cout << enld;
			return 0;
		}
	}
	cout << -1 << endl;
	}

}

Measured memory_bytes: 3792