#include #include #include #include #include using namespace std; int main() { int N, M; cin >> N >> M; vector A(N); for (int i = 0; i < N; ++i) { cin >> A[i]; } string S; cin >> S; function get = [&](int pos) { for (int i = 0; i < M; ++i) { if (S[i] == 'L') pos = max(pos - 1, 0); if (S[i] == 'R') pos = min(pos + 1, N - 1); } return pos; }; int s = get(0); int g = get(N - 1); int ls = 0, rs = N; while (rs - ls > 1) { int m = (ls + rs) >> 1; if (get(m) == s) ls = m; else rs = m; } if (s == g) { long long sum = 0; for (int i = 0; i < N; ++i) { sum += A[i]; } for (int i = 0; i < N; ++i) { if (i) cout << ' '; cout << (i == s ? sum : 0); } cout << endl; } else { int lg = 0, rg = N; while (rg - lg > 1) { int m = (lg + rg) >> 1; if (get(m) == g) rg = m; else lg = m; } long long s1 = 0, s2 = 0; for (int i = 0; i < N; ++i) { if (i < rs) s1 += A[i]; if (i >= rg) s2 += A[i]; } for (int i = 0; i < N; ++i) { if (i) cout << ' '; cout << (i < s ? 0 : (i > g ? 0 : (i == s ? s1 : (i == g ? s2 : A[i - s + rs - 1])))); } } return 0; }