#include using namespace std; #define rep(i, n) for(int i = 0; i < (int)n; ++i) #define FOR(i, a, b) for(int i = a; i < (int)b; ++i) #define rrep(i, n) for(int i = ((int)n - 1); i >= 0; --i) using ll = long long; using ld = long double; const ll INF = 1e18; const int Inf = 1e9; const double EPS = 1e-9; const int MOD = 1e9 + 7; int main() { cin.tie(nullptr); ios::sync_with_stdio(0); int n, m; string s; cin >> n >> m; vector a(n), res(n); rep (i, n) cin >> a[i]; cin >> s; int move = 0; int left = 0, right = 0; rep (i, s.size()) { if (s[i] == 'L') move--; else move++; if (move < 0) left++; else if (move > 0) right++; } if (move < 0) { res[0] += a[0]; res[max(0, n - 1 + move - right)] += a[n - 1]; } else if (move > 0) { res[n - 1] += a[n - 1]; res[min(n - 1, move + left)] += a[0]; } else { res[min(n - 1, left)] += a[0]; res[max(0, n - right)] += a[n - 1]; } FOR (i, 1, n - 1) { int t = i + move; if (t < 0) t = 0; else if (t > n - 1) t = n - 1; res[t] += a[i]; } rep (i, n) { cout << res[i]; if (i == n - 1) cout << endl; else cout << " "; } return 0; }