#include<bits/stdc++.h>
using namespace std;
#define all(a) a.begin(),a.end()
string s1,s2;
int preSum[100000 + 15];
int A1[100000+15],T1[100000+15],C1[100000+15];
int A2[100000+15],T2[100000+15],C2[100000+15];
int get_distance(int x,int y){
if((A1[y+1]-A1[x])!=(A2[y+1]-A2[x])) return -1;
if((T1[y+1]-T1[x])!=(T2[y+1]-T2[x])) return -1;
if((C1[y+1]-C1[x])!=(C2[y+1]-C2[x])) return -1;
//subtask 1
if((y-x)<=2){
int cnt=0;
for(int i=x;i<=y;i++) cnt+=(s1[i]!=s2[i]);
return (cnt+1)/2;
}
return (preSum[y+1]-preSum[x])/2;
}
void init(string a,string b){
s1=a;
s2=b;
int n=a.size();
for(int i=0;i<n;i++) preSum[i+1]=(a[i]!=b[i])+preSum[i];
for(int i=0;i<n;i++){
if(a[i]=='A') A1[i+1]++;
else if(a[i]=='T') T1[i+1]++;
else C1[i+1]++;
A1[i+1]+=A1[i];
T1[i+1]+=T1[i];
C1[i+1]+=C1[i];
}
for(int i=0;i<n;i++){
if(b[i]=='A') A2[i+1]++;
else if(b[i]=='T') T2[i+1]++;
else C2[i+1]++;
A2[i+1]+=A2[i];
T2[i+1]+=T2[i];
C2[i+1]+=C2[i];
}
return ;
}