#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstdlib>
#include<vector>
#include<string>
#include<random>
#include<map>
#include<queue>
using namespace std;

string sol(string s, char c){
  int tmp = s.size();
  string t = "";
  for(int i=0; i<s.size(); i++) t += c;

  s = s + s + s;
  t = t + t + t;

  for(int ii=0; ii<tmp; ii++){
    int i = ii + tmp;
    if( s[i] == 'x' && t[i] == 'S' ){
      if( t[i-1] == 'S' ) t[i+1] = 'W';
      else if( t[i-1] == 'W' ) t[i+1] = 'S';

    }else if( s[i] == 'x' && t[i] == 'W' ){
      if( t[i-1] == 'S' ) t[i+1] = 'S';
      else if( t[i-1] == 'W' ) t[i+1] = 'W';

    }else if( s[i] == 'o' && t[i] == 'S' ){
      if( t[i-1] == 'S' ) t[i+1] = 'S';
      else if( t[i-1] == 'W' ) t[i+1] = 'W';

    }else if( s[i] == 'o' && t[i] == 'W' ){
      if( t[i-1] == 'S' ) t[i+1] = 'W';
      else if( t[i-1] == 'W' ) t[i+1] = 'S';

    }
  }
  string p = t.substr(tmp, tmp);
  p = p + p + p;
  for(int ii=0; ii<tmp; ii++){
    int i = ii + tmp;
    if( s[i] == 'x' && p[i] == 'S' ){
      if( p[i-1] == p[i+1] ){
        return "";
      }
    }else if( s[i] == 'x' && p[i] == 'W' ){
      if( p[i-1] != p[i+1] ){
        return "";
      }
    }else if( s[i] == 'o' && p[i] == 'S' ){
      if( p[i-1] != p[i+1] ){
        return "";
      }
    }else if( s[i] == 'o' && p[i] == 'W' ){
      if( p[i-1] == p[i+1] ){
        return "";
      }
    }
  }
  return p;
}

string sol2(string s, char c){
  int tmp = s.size();
  string t = "";
  for(int i=0; i<s.size(); i++) t += c;

  s = s + s + s;
  t = t + t + t;

  if( t[tmp-1] == 'W' ) t[tmp-1] = 'S';
  else t[tmp-1] = 'W';
  for(int ii=0; ii<tmp; ii++){
    int i = ii + tmp;
    if( s[i] == 'x' && t[i] == 'S' ){
      if( t[i-1] == 'S' ) t[i+1] = 'W';
      else if( t[i-1] == 'W' ) t[i+1] = 'S';

    }else if( s[i] == 'x' && t[i] == 'W' ){
      if( t[i-1] == 'S' ) t[i+1] = 'S';
      else if( t[i-1] == 'W' ) t[i+1] = 'W';

    }else if( s[i] == 'o' && t[i] == 'S' ){
      if( t[i-1] == 'S' ) t[i+1] = 'S';
      else if( t[i-1] == 'W' ) t[i+1] = 'W';

    }else if( s[i] == 'o' && t[i] == 'W' ){
      if( t[i-1] == 'S' ) t[i+1] = 'W';
      else if( t[i-1] == 'W' ) t[i+1] = 'S';

    }
  }
  string p = t.substr(tmp, tmp);
  p = p + p + p;
  for(int ii=0; ii<tmp; ii++){
    int i = ii + tmp;
    if( s[i] == 'x' && p[i] == 'S' ){
      if( p[i-1] == p[i+1] ){
        return "";
      }
    }else if( s[i] == 'x' && p[i] == 'W' ){
      if( p[i-1] != p[i+1] ){
        return "";
      }
    }else if( s[i] == 'o' && p[i] == 'S' ){
      if( p[i-1] != p[i+1] ){
        return "";
      }
    }else if( s[i] == 'o' && p[i] == 'W' ){
      if( p[i-1] == p[i+1] ){
        return "";
      }
    }
  }
  return p;
}

int main(){

  int n;
  string s;
  cin >> n >> s;
  int tmp = s.size();
  string p = sol(s, 'S');
  string q = sol(s, 'W');
  string p2 = sol2(s, 'S');
  string q2 = sol2(s, 'W');
  // cerr << t << endl;
  // cerr << s << endl;

  if( p.size() != 0 ){
    cout << p.substr(tmp, tmp) << endl;
  }else if( q.size() != 0 ){
    cout << q.substr(tmp, tmp) << endl;
  }else if( p2.size() != 0 ){
    cout << p2.substr(tmp, tmp) << endl;
  }else if( q2.size() != 0 ){
    cout << q2.substr(tmp, tmp) << endl;
  }else{
    cout << -1 << endl;
  }

  return 0;
}







// EOF


Measured memory_bytes: 2044