#define IN_LB() freopen("F:\\in.txt","r",stdin)
#define IN_PC() freopen("C:\\Users\\hz\\Desktop\\in.txt","r",stdin)

#include <bits/stdc++.h>

using namespace std;
const int maxn = 100005;

char asg[maxn];
unsigned int ans[4][maxn];

bool judge(int type){
    int len = strlen(asg);
    for(int i=1;i<len;i++){
        if(i==len-1){
            if(ans[type][i]==1){
                if(asg[i]=='o'){
                    if(ans[type][0] == ans[type][i-1]){
                        if(ans[type][0]==1){
                            if(asg[0]=='o')return ans[type][len-1]==ans[type][1];
                            else return ans[type][len-1]!=ans[type][1];
                        }
                        else{
                            if(asg[0]=='o')return ans[type][len-1]!=ans[type][1];
                            else return ans[type][len-1]==ans[type][1];
                        }
                    }else return false;
                }
                else{
                    if(ans[type][0] != ans[type][i-1]){
                        if(ans[type][0]==1){
                            if(asg[0]=='o')return ans[type][len-1]==ans[type][1];
                            else return ans[type][len-1]!=ans[type][1];
                        }
                        else{
                            if(asg[0]=='o')return ans[type][len-1]!=ans[type][1];
                            else return ans[type][len-1]==ans[type][1];
                        }
                    }
                    else return false;
                }
            }
            else{
                if(asg[i]== 'o'){
                    if(ans[type][0] != ans[type][i-1]){
                        if(ans[type][0]==1){
                            if(asg[0]=='o')return ans[type][len-1]==ans[type][1];
                            else return ans[type][len-1]!=ans[type][1];
                        }
                        else{
                            if(asg[0]=='o')return ans[type][len-1]!=ans[type][1];
                            else return ans[type][len-1]==ans[type][1];
                        }
                    }else return false;
                }
                else{
                    if(ans[type][0] == ans[type][i-1]){
                        if(ans[type][0]==1){
                            if(asg[0]=='o')return ans[type][len-1]==ans[type][1];
                            else return ans[type][len-1]!=ans[type][1];
                        }
                        else{
                            if(asg[0]=='o')return ans[type][len-1]!=ans[type][1];
                            else return ans[type][len-1]==ans[type][1];
                        }
                    }else return false;
                }
            }
        }
        else{
            if(ans[type][i]==1){
                if(asg[i]=='o'){
                    ans[type][i+1] = ans[type][i-1];
                }
                else{
                    ans[type][i+1] = ans[type][i-1]^1;
                }
            }
            else{
                if(asg[i]=='o'){
                    ans[type][i+1] = ans[type][i-1]^1;
                }
                else{
                    ans[type][i+1] = ans[type][i-1];
                }
            }
        }
    }
    return false;
}

int main() {
//    IN_PC();
    int n;
    scanf("%d%s",&n,asg);
    ans[0][0] = 1;
    ans[0][1] = 1;
    ans[1][0] = 1;
    ans[1][1] = 0;
    ans[2][0] = 0;
    ans[2][1] = 0;
    ans[3][0] = 0;
    ans[3][1] = 1;
    for(int i=0;i<4;i++){
        if(judge(i)){
            for(int j=0;asg[j];j++){
                printf("%c",ans[i][j]?'S':'W');
            }
            printf("\n");
            return  0;
        }
    }
    printf("-1\n");
    return 0;
}


Measured memory_bytes: 2048