import sys

# N, Q の読み込み
N, Q = input().split()
N = int(N)
Q = int(Q)

# sを読み込む
s_list = list(input())

# ゴーレムの情報
#     0: 座標
#     1: 足元の情報
#     2: 範囲内のゴーレム :0
#        範囲外のゴーレム :1

G0 = list(range(N))
iG1 = s_list
G2 = [0]*N

# 呪文を順番に読み込む
for i in range(Q):
# for i in range(1):
    # 入力の読み込み
    str, LR = input().split()

    # strが一致するゴーレムの検索
    for j in range(N):
        # 座標が範囲外のゴーレムを無視
        if G2[j] == 1:
            continue
        else:
            # strが一致するゴーレムを移動
            G1 = iG1[G0[j]]
            if G1 == str:
                if LR == 'R':
                    mv = 1
                else:
                    mv = -1

                # 配列の外を参照させない
                if j+mv < 0 or j+mv > N:
                    G2[j] = 1
                else:
                    G0[j] = G0[j] + mv
                    if G0[j] < 0 or G0[j] >=N:
                        G2[j] = 1

    print(G0)
    print(G2) 

# 範囲内に残ったゴーレムをカウント
G_cnt = 0
for j in range(N):
    if G2[j] == 0:
        G_cnt += 1

print(G_cnt)
