datas = gets.split(" ").map{|nn|nn.to_i}
n = datas[0]
q = datas[1]

map_data = gets.chomp.split("")

spells = []
q.times do|pp|
  spells << gets.split(" ")
  if spells[pp][1] == "L"
    spells[pp][1] = -1
  else
    spells[pp][1] = 1
  end
end

golems = n
stop = false
mapsize = map_data.size
#左から出られるかを判定
#判定が終了した時点でそれよりも左のゴーレムを全員消す
(mapsize-1).downto(0) do|i|
  place = i
  spells.each do|spell|
    next if map_data[place] != spell[0]
    place += spell[1]
    if place < 0
      # 左から出られる
      golems -= (i + 1)
      stop = true
    end
  end
  break if stop
end

#右から出られるかを判定
#判定が終了した時点でそれよりも右のゴーレムを全部消す
stop = false
for i in 0..(mapsize-1)
  place = i
  spells.each do|spell|
    next if map_data[place] != spell[0]
    place += spell[1]
    if place >= mapsize
      # 右から出られる
      golems -= mapsize - i
      stop = true
    end
  end
  break if stop
end

puts golems.to_s