import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

/*Atcoder用
 * 		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String[] tmp = br.readLine().split(" ");
		int a = Integer.parseInt(tmp[0]);
		int b = Integer.parseInt(tmp[1]);
		int c = Integer.parseInt(tmp[2]);


		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String get = br.readLine();
		char[] s = get.toCharArray();
		for(char c:s)System.out.println(c);

		List<Integer> ls = new ArrayList<Integer>();
		String[] tmp = br.readLine().split(" ");
		for (int n = 0; n < N; n++) {
			ls.add(Integer.parseInt(tmp[n]));
		}
 */

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String[] tmp = br.readLine().split(" ");
		int N = Integer.parseInt(tmp[0]);
		int Q = Integer.parseInt(tmp[1]);
		String S = br.readLine();

		List<Integer> l = new ArrayList<Integer>();
		List<Integer> r = new ArrayList<Integer>();


		for (int n = 0; n < Q; n++) {
			tmp = br.readLine().split(" ");
			l.add(Integer.parseInt(tmp[0])-1);
			r.add(Integer.parseInt(tmp[1])-1);
		}

		List<Integer> als = new ArrayList<Integer>();

		int acCount = 0;
		boolean isA = false;
		for(int i = 0;i<N;i++){
			if(S.charAt(i) == 'A'){
				isA = true;
				als.add(acCount);
			}
			else if(S.charAt(i) == 'C' && isA){
				isA = false;
				acCount++;
				als.add(acCount);
			}else{
				isA = false;
				als.add(acCount);
			}
		}

		for(int i = 0;i<l.size();i++){
			int ans = 0;
			int nowL = l.get(i);
			int nowR = r.get(i);

			System.out.println(als.get(nowR) - als.get(nowL));
		}


	}
} import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io import java.util.ArrayList; ArrayList java.util import java.util.List; List java.util public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String[] tmp = br.readLine().split(" ");
		int N = Integer.parseInt(tmp[0]);
		int Q = Integer.parseInt(tmp[1]);
		String S = br.readLine();

		List<Integer> l = new ArrayList<Integer>();
		List<Integer> r = new ArrayList<Integer>();


		for (int n = 0; n < Q; n++) {
			tmp = br.readLine().split(" ");
			l.add(Integer.parseInt(tmp[0])-1);
			r.add(Integer.parseInt(tmp[1])-1);
		}

		List<Integer> als = new ArrayList<Integer>();

		int acCount = 0;
		boolean isA = false;
		for(int i = 0;i<N;i++){
			if(S.charAt(i) == 'A'){
				isA = true;
				als.add(acCount);
			}
			else if(S.charAt(i) == 'C' && isA){
				isA = false;
				acCount++;
				als.add(acCount);
			}else{
				isA = false;
				als.add(acCount);
			}
		}

		for(int i = 0;i<l.size();i++){
			int ans = 0;
			int nowL = l.get(i);
			int nowR = r.get(i);

			System.out.println(als.get(nowR) - als.get(nowL));
		}


	}
} Main public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String[] tmp = br.readLine().split(" ");
		int N = Integer.parseInt(tmp[0]);
		int Q = Integer.parseInt(tmp[1]);
		String S = br.readLine();

		List<Integer> l = new ArrayList<Integer>();
		List<Integer> r = new ArrayList<Integer>();


		for (int n = 0; n < Q; n++) {
			tmp = br.readLine().split(" ");
			l.add(Integer.parseInt(tmp[0])-1);
			r.add(Integer.parseInt(tmp[1])-1);
		}

		List<Integer> als = new ArrayList<Integer>();

		int acCount = 0;
		boolean isA = false;
		for(int i = 0;i<N;i++){
			if(S.charAt(i) == 'A'){
				isA = true;
				als.add(acCount);
			}
			else if(S.charAt(i) == 'C' && isA){
				isA = false;
				acCount++;
				als.add(acCount);
			}else{
				isA = false;
				als.add(acCount);
			}
		}

		for(int i = 0;i<l.size();i++){
			int ans = 0;
			int nowL = l.get(i);
			int nowR = r.get(i);

			System.out.println(als.get(nowR) - als.get(nowL));
		}


	} main {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String[] tmp = br.readLine().split(" ");
		int N = Integer.parseInt(tmp[0]);
		int Q = Integer.parseInt(tmp[1]);
		String S = br.readLine();

		List<Integer> l = new ArrayList<Integer>();
		List<Integer> r = new ArrayList<Integer>();


		for (int n = 0; n < Q; n++) {
			tmp = br.readLine().split(" ");
			l.add(Integer.parseInt(tmp[0])-1);
			r.add(Integer.parseInt(tmp[1])-1);
		}

		List<Integer> als = new ArrayList<Integer>();

		int acCount = 0;
		boolean isA = false;
		for(int i = 0;i<N;i++){
			if(S.charAt(i) == 'A'){
				isA = true;
				als.add(acCount);
			}
			else if(S.charAt(i) == 'C' && isA){
				isA = false;
				acCount++;
				als.add(acCount);
			}else{
				isA = false;
				als.add(acCount);
			}
		}

		for(int i = 0;i<l.size();i++){
			int ans = 0;
			int nowL = l.get(i);
			int nowR = r.get(i);

			System.out.println(als.get(nowR) - als.get(nowL));
		}


	} BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br new BufferedReader(new InputStreamReader(System.in)) String[] tmp = br.readLine().split(" "); tmp br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " int N = Integer.parseInt(tmp[0]); N Integer.parseInt(tmp[0]) Integer.parseInt Integer tmp[0] tmp 0 int Q = Integer.parseInt(tmp[1]); Q Integer.parseInt(tmp[1]) Integer.parseInt Integer tmp[1] tmp 1 String S = br.readLine(); S br.readLine() br.readLine br List<Integer> l = new ArrayList<Integer>(); l new ArrayList<Integer>() List<Integer> r = new ArrayList<Integer>(); r new ArrayList<Integer>() for (int n = 0; n < Q; n++) {
			tmp = br.readLine().split(" ");
			l.add(Integer.parseInt(tmp[0])-1);
			r.add(Integer.parseInt(tmp[1])-1);
		} int n = 0; int n = 0; n 0 n < Q n Q n++ n++ n {
			tmp = br.readLine().split(" ");
			l.add(Integer.parseInt(tmp[0])-1);
			r.add(Integer.parseInt(tmp[1])-1);
		} {
			tmp = br.readLine().split(" ");
			l.add(Integer.parseInt(tmp[0])-1);
			r.add(Integer.parseInt(tmp[1])-1);
		} tmp = br.readLine().split(" ") tmp br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " l.add(Integer.parseInt(tmp[0])-1) l.add l Integer.parseInt(tmp[0])-1 Integer.parseInt(tmp[0]) Integer.parseInt Integer tmp[0] tmp 0 1 r.add(Integer.parseInt(tmp[1])-1) r.add r Integer.parseInt(tmp[1])-1 Integer.parseInt(tmp[1]) Integer.parseInt Integer tmp[1] tmp 1 1 List<Integer> als = new ArrayList<Integer>(); als new ArrayList<Integer>() int acCount = 0; acCount 0 boolean isA = false; isA false for(int i = 0;i<N;i++){
			if(S.charAt(i) == 'A'){
				isA = true;
				als.add(acCount);
			}
			else if(S.charAt(i) == 'C' && isA){
				isA = false;
				acCount++;
				als.add(acCount);
			}else{
				isA = false;
				als.add(acCount);
			}
		} int i = 0; int i = 0; i 0 i<N i N i++ i++ i {
			if(S.charAt(i) == 'A'){
				isA = true;
				als.add(acCount);
			}
			else if(S.charAt(i) == 'C' && isA){
				isA = false;
				acCount++;
				als.add(acCount);
			}else{
				isA = false;
				als.add(acCount);
			}
		} {
			if(S.charAt(i) == 'A'){
				isA = true;
				als.add(acCount);
			}
			else if(S.charAt(i) == 'C' && isA){
				isA = false;
				acCount++;
				als.add(acCount);
			}else{
				isA = false;
				als.add(acCount);
			}
		} if(S.charAt(i) == 'A'){
				isA = true;
				als.add(acCount);
			}
			else if(S.charAt(i) == 'C' && isA){
				isA = false;
				acCount++;
				als.add(acCount);
			}else{
				isA = false;
				als.add(acCount);
			} S.charAt(i) == 'A' S.charAt(i) S.charAt S i 'A' {
				isA = true;
				als.add(acCount);
			} isA = true isA true als.add(acCount) als.add als acCount if(S.charAt(i) == 'C' && isA){
				isA = false;
				acCount++;
				als.add(acCount);
			}else{
				isA = false;
				als.add(acCount);
			} S.charAt(i) == 'C' && isA S.charAt(i) == 'C' S.charAt(i) S.charAt S i 'C' isA {
				isA = false;
				acCount++;
				als.add(acCount);
			} isA = false isA false acCount++ acCount als.add(acCount) als.add als acCount {
				isA = false;
				als.add(acCount);
			} isA = false isA false als.add(acCount) als.add als acCount for(int i = 0;i<l.size();i++){
			int ans = 0;
			int nowL = l.get(i);
			int nowR = r.get(i);

			System.out.println(als.get(nowR) - als.get(nowL));
		} int i = 0; int i = 0; i 0 i<l.size() i l.size() l.size l i++ i++ i {
			int ans = 0;
			int nowL = l.get(i);
			int nowR = r.get(i);

			System.out.println(als.get(nowR) - als.get(nowL));
		} {
			int ans = 0;
			int nowL = l.get(i);
			int nowR = r.get(i);

			System.out.println(als.get(nowR) - als.get(nowL));
		} int ans = 0; ans 0 int nowL = l.get(i); nowL l.get(i) l.get l i int nowR = r.get(i); nowR r.get(i) r.get r i System.out.println(als.get(nowR) - als.get(nowL)) System.out.println System.out System System.out als.get(nowR) - als.get(nowL) als.get(nowR) als.get als nowR als.get(nowL) als.get als nowL String[] args args public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String[] tmp = br.readLine().split(" ");
		int N = Integer.parseInt(tmp[0]);
		int Q = Integer.parseInt(tmp[1]);
		String S = br.readLine();

		List<Integer> l = new ArrayList<Integer>();
		List<Integer> r = new ArrayList<Integer>();


		for (int n = 0; n < Q; n++) {
			tmp = br.readLine().split(" ");
			l.add(Integer.parseInt(tmp[0])-1);
			r.add(Integer.parseInt(tmp[1])-1);
		}

		List<Integer> als = new ArrayList<Integer>();

		int acCount = 0;
		boolean isA = false;
		for(int i = 0;i<N;i++){
			if(S.charAt(i) == 'A'){
				isA = true;
				als.add(acCount);
			}
			else if(S.charAt(i) == 'C' && isA){
				isA = false;
				acCount++;
				als.add(acCount);
			}else{
				isA = false;
				als.add(acCount);
			}
		}

		for(int i = 0;i<l.size();i++){
			int ans = 0;
			int nowL = l.get(i);
			int nowR = r.get(i);

			System.out.println(als.get(nowR) - als.get(nowL));
		}


	}
} public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String[] tmp = br.readLine().split(" ");
		int N = Integer.parseInt(tmp[0]);
		int Q = Integer.parseInt(tmp[1]);
		String S = br.readLine();

		List<Integer> l = new ArrayList<Integer>();
		List<Integer> r = new ArrayList<Integer>();


		for (int n = 0; n < Q; n++) {
			tmp = br.readLine().split(" ");
			l.add(Integer.parseInt(tmp[0])-1);
			r.add(Integer.parseInt(tmp[1])-1);
		}

		List<Integer> als = new ArrayList<Integer>();

		int acCount = 0;
		boolean isA = false;
		for(int i = 0;i<N;i++){
			if(S.charAt(i) == 'A'){
				isA = true;
				als.add(acCount);
			}
			else if(S.charAt(i) == 'C' && isA){
				isA = false;
				acCount++;
				als.add(acCount);
			}else{
				isA = false;
				als.add(acCount);
			}
		}

		for(int i = 0;i<l.size();i++){
			int ans = 0;
			int nowL = l.get(i);
			int nowR = r.get(i);

			System.out.println(als.get(nowR) - als.get(nowL));
		}


	}
} Main
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

/*Atcoder用
 * 		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String[] tmp = br.readLine().split(" ");
		int a = Integer.parseInt(tmp[0]);
		int b = Integer.parseInt(tmp[1]);
		int c = Integer.parseInt(tmp[2]);


		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String get = br.readLine();
		char[] s = get.toCharArray();
		for(char c:s)System.out.println(c);

		List<Integer> ls = new ArrayList<Integer>();
		String[] tmp = br.readLine().split(" ");
		for (int n = 0; n < N; n++) {
			ls.add(Integer.parseInt(tmp[n]));
		}
 */

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String[] tmp = br.readLine().split(" ");
		int N = Integer.parseInt(tmp[0]);
		int Q = Integer.parseInt(tmp[1]);
		String S = br.readLine();

		List<Integer> l = new ArrayList<Integer>();
		List<Integer> r = new ArrayList<Integer>();


		for (int n = 0; n < Q; n++) {
			tmp = br.readLine().split(" ");
			l.add(Integer.parseInt(tmp[0])-1);
			r.add(Integer.parseInt(tmp[1])-1);
		}

		List<Integer> als = new ArrayList<Integer>();

		int acCount = 0;
		boolean isA = false;
		for(int i = 0;i<N;i++){
			if(S.charAt(i) == 'A'){
				isA = true;
				als.add(acCount);
			}
			else if(S.charAt(i) == 'C' && isA){
				isA = false;
				acCount++;
				als.add(acCount);
			}else{
				isA = false;
				als.add(acCount);
			}
		}

		for(int i = 0;i<l.size();i++){
			int ans = 0;
			int nowL = l.get(i);
			int nowR = r.get(i);

			System.out.println(als.get(nowR) - als.get(nowL));
		}


	}
}