// Original C++ solution (slower):
#include <iostream>

#include <string>

#include <cstring>

using namespace std;



int a[100010];

int main()

{

    int n; cin>>n;

    string s; cin>>s;



    if (s[0]=='o') {

        memset(a, 0, sizeof(a));

        a[0]=1; // S

        // SSS

        a[1]=a[n-1]=1;

        for(int i=1; i+2<n; ++i) {

            if (s[i]=='o')

                a[i+1]=a[i] ? a[i-1] : !a[i-1];

            else

                a[i+1]=!a[i] ? a[i-1] : !a[i-1];

        }

        bool ok=true;

        if (s[n-2]=='o') {

            if (a[n-2] and a[n-3]!=a[n-1] or !a[n-2] and a[n-3]==a[n-1])

                ok=false;

        }

        else {

            if (a[n-2] and a[n-3]==a[n-1] or !a[n-2] and a[n-3]!=a[n-1])

                ok=false;

        }

        if (ok) {

            if (s[n-1]=='o') {

                if (a[n-1] and a[n-2]==a[0] or !a[n-1] and a[n-2]!=a[0]) {

                    for(int i=0; i<n; ++i) cout<<(a[i]?'S':'W');

                    cout<<endl;

                    return 0;

                }

            }

            else {

                if (a[n-1] and a[n-2]!=a[0] or !a[n-1] and a[n-2]==a[0]) {

                    for(int i=0; i<n; ++i) cout<<(a[i]?'S':'W');

                    cout<<endl;

                    return 0;

                }

            }

        }

        memset(a, 0, sizeof(a));

        a[0]=1;

        // WSW

        a[1]=a[n-1]=0;

        for(int i=1; i+2<n; ++i) {

            if (s[i]=='o')

                a[i+1]=a[i] ? a[i-1] : !a[i-1];

            else

                a[i+1]=!a[i] ? a[i-1] : !a[i-1];

        }

        ok=true;

        if (s[n-2]=='o') {

            if (a[n-2] and a[n-3]!=a[n-1] or !a[n-2] and a[n-3]==a[n-1])

                ok=false;

        }

        else {

            if (a[n-2] and a[n-3]==a[n-1] or !a[n-2] and a[n-3]!=a[n-1])

                ok=false;

        }

        if (ok) {

            if (s[n-1]=='o') {

                if (a[n-1] and a[n-2]==a[0] or !a[n-1] and a[n-2]!=a[0]) {

                    for(int i=0; i<n; ++i) cout<<(a[i]?'S':'W');

                    cout<<endl;

                    return 0;

                }

            }

            else {

                if (a[n-1] and a[n-2]!=a[0] or !a[n-1] and a[n-2]==a[0]) {

                    for(int i=0; i<n; ++i) cout<<(a[i]?'S':'W');

                    cout<<endl;

                    return 0;

                }

            }

        }

        memset(a, 0, sizeof(a));

        a[0]=0; // W

        // WWS

        a[1]=1, a[n-1]=0;

        for(int i=1; i+2<n; ++i) {

            if (s[i]=='o')

                a[i+1]=a[i] ? a[i-1] : !a[i-1];

            else

                a[i+1]=!a[i] ? a[i-1] : !a[i-1];

        }

        ok=true;

        if (s[n-2]=='o') {

            if (a[n-2] and a[n-3]!=a[n-1] or !a[n-2] and a[n-3]==a[n-1])

                ok=false;

        }

        else {

            if (a[n-2] and a[n-3]==a[n-1] or !a[n-2] and a[n-3]!=a[n-1])

                ok=false;

        }

        if (ok) {

            if (s[n-1]=='o') {

                if (a[n-1] and a[n-2]==a[0] or !a[n-1] and a[n-2]!=a[0]) {

                    for(int i=0; i<n; ++i) cout<<(a[i]?'S':'W');

                    cout<<endl;

                    return 0;

                }

            }

            else {

                if (a[n-1] and a[n-2]!=a[0] or !a[n-1] and a[n-2]==a[0]) {

                    for(int i=0; i<n; ++i) cout<<(a[i]?'S':'W');

                    cout<<endl;

                    return 0;

                }

            }

        }

        memset(a, 0, sizeof(a));

        a[0]=0;

        // SWW

        a[1]=0, a[n-1]=1;

        for(int i=1; i+2<n; ++i) {

            if (s[i]=='o')

                a[i+1]=a[i] ? a[i-1] : !a[i-1];

            else

                a[i+1]=!a[i] ? a[i-1] : !a[i-1];

        }

        ok=true;

        if (s[n-2]=='o') {

            if (a[n-2] and a[n-3]!=a[n-1] or !a[n-2] and a[n-3]==a[n-1])

                ok=false;

        }

        else {

            if (a[n-2] and a[n-3]==a[n-1] or !a[n-2] and a[n-3]!=a[n-1])

                ok=false;

        }

        if (ok) {

            if (s[n-1]=='o') {

                if (a[n-1] and a[n-2]==a[0] or !a[n-1] and a[n-2]!=a[0]) {

                    for(int i=0; i<n; ++i) cout<<(a[i]?'S':'W');

                    cout<<endl;

                    return 0;

                }

            }

            else {

                if (a[n-1] and a[n-2]!=a[0] or !a[n-1] and a[n-2]==a[0]) {

                    for(int i=0; i<n; ++i) cout<<(a[i]?'S':'W');

                    cout<<endl;

                    return 0;

                }

            }

        }

    }

    else {

        memset(a, 0, sizeof(a));

        a[0]=1; // S

        // SSW

        a[1]=0, a[n-1]=1;

        for(int i=1; i+2<n; ++i) {

            if (s[i]=='o')

                a[i+1]=a[i] ? a[i-1] : !a[i-1];

            else

                a[i+1]=!a[i] ? a[i-1] : !a[i-1];

        }

        bool ok=true;

        if (s[n-2]=='o') {

            if (a[n-2] and a[n-3]!=a[n-1] or !a[n-2] and a[n-3]==a[n-1])

                ok=false;

        }

        else {

            if (a[n-2] and a[n-3]==a[n-1] or !a[n-2] and a[n-3]!=a[n-1])

                ok=false;

        }

        if (ok) {

            if (s[n-1]=='o') {

                if (a[n-1] and a[n-2]==a[0] or !a[n-1] and a[n-2]!=a[0]) {

                    for(int i=0; i<n; ++i) cout<<(a[i]?'S':'W');

                    cout<<endl;

                    return 0;

                }

            }

            else {

                if (a[n-1] and a[n-2]!=a[0] or !a[n-1] and a[n-2]==a[0]) {

                    for(int i=0; i<n; ++i) cout<<(a[i]?'S':'W');

                    cout<<endl;

                    return 0;

                }

            }

        }

        memset(a, 0, sizeof(a));

        a[0]=1;

        // WSS

        a[1]=1, a[n-1]=0;

        for(int i=1; i+2<n; ++i) {

            if (s[i]=='o')

                a[i+1]=a[i] ? a[i-1] : !a[i-1];

            else

                a[i+1]=!a[i] ? a[i-1] : !a[i-1];

        }

        ok=true;

        if (s[n-2]=='o') {

            if (a[n-2] and a[n-3]!=a[n-1] or !a[n-2] and a[n-3]==a[n-1])

                ok=false;

        }

        else {

            if (a[n-2] and a[n-3]==a[n-1] or !a[n-2] and a[n-3]!=a[n-1])

                ok=false;

        }

        if (ok) {

            if (s[n-1]=='o') {

                if (a[n-1] and a[n-2]==a[0] or !a[n-1] and a[n-2]!=a[0]) {

                    for(int i=0; i<n; ++i) cout<<(a[i]?'S':'W');

                    cout<<endl;

                    return 0;

                }

            }

            else {

                if (a[n-1] and a[n-2]!=a[0] or !a[n-1] and a[n-2]==a[0]) {

                    for(int i=0; i<n; ++i) cout<<(a[i]?'S':'W');

                    cout<<endl;

                    return 0;

                }

            }

        }

        memset(a, 0, sizeof(a));

        a[0]=0; // W

        // SWS

        a[1]=1, a[n-1]=1;

        for(int i=1; i+2<n; ++i) {

            if (s[i]=='o')

                a[i+1]=a[i] ? a[i-1] : !a[i-1];

            else

                a[i+1]=!a[i] ? a[i-1] : !a[i-1];

        }

        ok=true;

        if (s[n-2]=='o') {

            if (a[n-2] and a[n-3]!=a[n-1] or !a[n-2] and a[n-3]==a[n-1])

                ok=false;

        }

        else {

            if (a[n-2] and a[n-3]==a[n-1] or !a[n-2] and a[n-3]!=a[n-1])

                ok=false;

        }

        if (ok) {

            if (s[n-1]=='o') {

                if (a[n-1] and a[n-2]==a[0] or !a[n-1] and a[n-2]!=a[0]) {

                    for(int i=0; i<n; ++i) cout<<(a[i]?'S':'W');

                    cout<<endl;

                    return 0;

                }

            }

            else {

                if (a[n-1] and a[n-2]!=a[0] or !a[n-1] and a[n-2]==a[0]) {

                    for(int i=0; i<n; ++i) cout<<(a[i]?'S':'W');

                    cout<<endl;

                    return 0;

                }

            }

        }

        memset(a, 0, sizeof(a));

        a[0]=0;

        // WWW

        a[1]=0, a[n-1]=0;

        for(int i=1; i+2<n; ++i) {

            if (s[i]=='o')

                a[i+1]=a[i] ? a[i-1] : !a[i-1];

            else

                a[i+1]=!a[i] ? a[i-1] : !a[i-1];

        }

        ok=true;

        if (s[n-2]=='o') {

            if (a[n-2] and a[n-3]!=a[n-1] or !a[n-2] and a[n-3]==a[n-1])

                ok=false;

        }

        else {

            if (a[n-2] and a[n-3]==a[n-1] or !a[n-2] and a[n-3]!=a[n-1])

                ok=false;

        }

        if (ok) {

            if (s[n-1]=='o') {

                if (a[n-1] and a[n-2]==a[0] or !a[n-1] and a[n-2]!=a[0]) {

                    for(int i=0; i<n; ++i) cout<<(a[i]?'S':'W');

                    cout<<endl;

                    return 0;

                }

            }

            else {

                if (a[n-1] and a[n-2]!=a[0] or !a[n-1] and a[n-2]==a[0]) {

                    for(int i=0; i<n; ++i) cout<<(a[i]?'S':'W');

                    cout<<endl;

                    return 0;

                }

            }

        }

    }

    cout<<-1<<endl;

}


// Optimized solution to the same problem (faster):
#include <iostream>

#include <string>

using namespace std;



int main()

{

    int n; cin>>n;

    string s; cin>>s;



    for(int j=0; j<4; ++j) {

        int x=j/2, y=j%2;

        int a[n]={};

        a[0]=x;

        a[1]=y;

        for(int k=1; k+1<n; ++k) a[k+1]=(s[k]%2^a[k]^a[k-1]);

        if (a[0]==(s[n-1]%2^a[n-2]^a[n-1]) and a[1]==(s[0]%2^a[0]^a[n-1])) {

            for(int e: a) cout<<(e?'S':'W');

            cout<<endl;

            return 0;

        }

    }

    cout<<-1<<endl;

}


// Fastest known solution for this problem: