#include #include #include #include #include #include #include #include #include #include static const int MOD = 1000000007; using ll = long long; using u32 = unsigned; using u64 = unsigned long long; using namespace std; template constexpr T INF = ::numeric_limits::max()/32*15+208; int main() { int n, m; cin >> n >> m; int l = 0, r = n-1, a = 0, b = n-1; vector v(n); for (auto &&i : v) scanf("%d", &i); string s; cin >> s; for (int i = 0; i < m; ++i) { if(s[i] == 'L'){ if(l == 0 && a != b) { v[a+1] += v[a]; v[a] = 0; a++; } l = max(l-1, 0); r = max(r-1, 0); }else { if(r == n-1 && a != b) { v[b-1] += v[b]; v[b] = 0; b--; } l = min(l+1, n-1); r = min(r+1, n-1); } } for (int i = 0; i < n; ++i) { if(i) printf(" "); if(i < l || r < i){ printf("0"); }else { printf("%d", v[i-l+a]); } } puts(""); return 0; }