import sequtils, strutils, algorithm, math, future, sets, tables, hashes, intsets let read = iterator : string {.closure.} = (while true: (for s in stdin.readLine.split : yield s)) var n,m = read().parseint a = newseqwith(n, read().parseint) s = read() cur = 0 maxv = int.low minv = int.high for i in 0 ..< m: if s[i] == 'R': cur += 1 maxv = max(maxv, cur) if s[i] == 'L': cur -= 1 minv = min(minv, cur) var ans = newseqwith(n, 0) if abs(minv) > n - 1: minv = 1 - n var leftsum = a[0 ..< abs(minv) + 1].sum if abs(minv) + cur < 0: ans[0] = leftsum echo ans.join(" ") quit() else: ans[abs(minv) + cur] = leftsum if maxv > n - 1: maxv = n - 1 var rightsum = a[n - maxv - 1 ..< n].sum if n - maxv - 1 + cur > n - 1: ans[n - 1] = rightsum echo ans.join(" ") quit() else: ans[n - maxv - 1 + cur] = rightsum for i in abs(minv) + 1 ..< n - maxv - 1: ans[i] = a[i + cur] echo ans.join(" ")