fun main(args: Array<String>) {
    val (n, q) = readLine()!!.split(" ").map { it.toInt() }
    val s = readLine()!!

    // 問題毎に計算していたら間に合わない
    // 全組み合わせに対して計算するのも間に合わない
    // 漸化式的に計算して計算量を落とせないか？？
    // 文字列から AC 以外を落として処理すれば？？ 最悪のケースでは失敗するので ☓
    // 事前に全体とそれより右，左で計算する

    var left_count = IntArray(size=100000)
    var right_count = IntArray(size = 100000)
    var total = 0

    var cnt = 0
    for(i in 1 until s.length) {
        if (s.substring(i-1, i+1) == "AC") {
             cnt += 1
        }
        left_count[i] = cnt
    }

    total = cnt
    for (i in 0 until right_count.size) {
        right_count[i] = total - left_count[i]
    }

    for (i in 0 until q) {
        val (l, r) = readLine()!!.split(" ").map { it.toInt() }
        println(total - left_count[l-1] - right_count[r-1])
    }
}