import java.util.Scanner

object Main extends App {

  val sc = new Scanner(System.in)

  val n = sc.nextInt
  val q = sc.nextInt
  val s = sc.next

  // (li, ri) の組 として扱う
  val lrs = Seq.fill(q)((sc.nextInt, sc.nextInt))

  // Vector[Int]は略せるが、わかりやすさのため。。。
  val commutativeCount: Vector[Int] = {
    s.tail.foldLeft((Vector(0), s.head)){case ((vec, pre), ch) =>
      (pre, ch) match {
        case ('A', 'C') => ( vec :+ (vec.last + 1), ch )
        case _          => ( vec :+  vec.last     , ch )
      }
    }._1
  }

  val res = lrs.map{ case (l,r) =>
    commutativeCount(r - 1) - commutativeCount(l - 1)
  }

  res.foreach(println)



  //文字列Sに含まれるACの個数を求めるメソッド countAC を実装する
//  def countAC(str: String): Int = {
//    str.tail.foldLeft((0, str.head)){ case ( (cnt, pre), ch) =>
//      (pre, ch) match {
//        case ('A','C') => (cnt + 1, ch)
//        case _         => (cnt    , ch)
//      }
//    }._1
//  }

  //各iに対して文字列Sを左からli,右からriだけ切り出してcountACを施す
//  val res =
//    lrs.map{ case (l, r) =>
//      val subStr = s.substring(l - 1, r)
//      countAC(subStr)
//    }
//  res.foreach(println)
}
