function binary_sort(array,search_value){ 
  const array_len = array.length;
  var left_index = 0;
  var right_index = array_len-1
  var middle_index = 0;
  var count = 0; // 計算量
  var index = 0;

  // 最小値より小さい場合
  if (search_value <= array[0]) {
    return 0;

  // 最大値より大きい場合
  } else if (search_value > array[array_len-1]) {
    return array_len;

  // 最小値と最大値の間にある場合
  } else {
    while (left_index <= right_index) {
      count++;
      middle_index = Math.floor( (left_index + right_index) / 2 );

      // どんぴしゃの時
      if (search_value == array[middle_index]) {
        return middle_index;

      // 真ん中より小さい場合 
      } else if (search_value < array[middle_index]) {
        right_index = middle_index;

      // 真ん中より大きい場合
      } else {
        left_index = middle_index;
      }

      //console.log("left_index : " + left_index + " / right_index : " + right_index);
      // 最後にこれ以上探索する必要があるか確認
      if ( (right_index - left_index) <= 1) {
        //console.log("-----------");
        index = right_index;
        //console.log("index(right_index) : " + index);
        //console.log("count : " + count);
        return index;
      }
    }
  }
}

function Main(input){
  input_text = input.split('\n');
  N_Q = input_text[0].split(' ');
  N = N_Q[0];
  Q = N_Q[1];
  S = input_text[1];
  count = 0;
  AC_Array = [];
  for(k=0;k<N-1;k++){
    if(S[k] === 'A' && S[k+1] === 'C'){
      AC_Array.push(k);
    }
  }
  AC_Array_len = AC_Array.length;
  //console.log(AC_Array);
  for(i=0;i<Q;i++){
    l_r = input_text[i+2].split(' ');
    l = l_r[0]-1;	//index
    r = l_r[1]-1;	//index
    //console.log("=====[ l : " + l + " / r : " + r + "]");
    var count_low = AC_Array_len - binary_sort(AC_Array,l);
    //console.log("count_low : " + count_low);
    var count_high = AC_Array_len - binary_sort(AC_Array,r);
    //console.log("count_high : " + count_high);
    console.log(count_low - count_high);
    count=0;
  }
}
 
Main(require("fs").readFileSync("/dev/stdin","utf-8"));