n, q = gets.chomp.split.map(&:to_i)
s = gets.chomp

position = []
0.upto(s.length - 2){|x|position << x if s[x, 2] == "AC"}

table_r = []
position.each{|pos| table_r[pos + 1] = 1}

cum = 0
0.upto(s.length - 1){|pos|
    if table_r[pos].nil?
        table_r[pos] = cum
    else
        table_r[pos] += cum
    end
    cum = table_r[pos]
}

table_l = []
0.upto(s.length - 2){|pos| table_l[pos] = table_r[pos + 1] - 1}

table = []
position.each{|pos|
    table[pos] = 0.5
    table[pos + 1] = 0.5
}
#p table
cum = 0.0
0.upto(s.length - 1){|pos|
    if table[pos].nil?
        table[pos] = cum
    else
        table[pos] += cum
    end
    cum = table[pos]
}
#p table

q.times{
    l, r = gets.chomp.split.map(&:to_i)
#    puts table_r[r - 1] - table_l[l - 1]
    puts table_r[r-1] -  table_r[l-1]
}
