// This amazing code is by Eric Sunli Chen. #include using namespace std; template bool get_int(T &x) { char t=getchar(); bool neg=false; x=0; for(; (t>'9'||t<'0')&&t!='-'&&t!=EOF; t=getchar()); if(t=='-')neg=true,t=getchar();if(t==EOF)return false; for(; t<='9'&&t>='0'; t=getchar())x=x*10+t-'0'; if(neg)x=-x;return true; } template void print_int(T x) { if(x<0)putchar('-'),x=-x; short a[20]= {},sz=0; while(x>0)a[sz++]=x%10,x/=10; if(sz==0)putchar('0'); for(int i=sz-1; i>=0; i--)putchar('0'+a[i]); } #define ff first #define ss second #define pb push_back #define mp make_pair #define get1(a) get_int(a) #define get2(a,b) (get1(a)&&get1(b)) #define get3(a,b,c) (get1(a)&&get2(b,c)) #define printendl(a) print_int(a),puts("") typedef long long LL; typedef unsigned long long uLL; typedef pair pii; const int inf=0x3f3f3f3f; const LL Linf=1ll<<61; const double pi=acos(-1.0); char s[100111]; int n,q,pre[100111][26]; void solve(int tc) { get2(n,q);scanf("%s",s+1); for(int i=1;i<=n;i++) { memcpy(pre[i],pre[i-1],sizeof(pre[i])); pre[i][s[i]-'A']++; } printf("Case #%d:\n",tc); for(int i=1,l,r;i<=q;i++) { get2(l,r); for(int j=0;j<26;j++)if(pre[l-1][j]!=pre[r][j]) { printf("%d\n",pre[r][j]-pre[l-1][j]); break; } } } int main() { int tc;get1(tc); for(int i=1;i<=tc;i++)solve(i); return 0; }