#include bool debug=true; #define ll long long #define ull unsigned long long #define log(var) if(debug) {cout << #var << ": " << (var) << endl;} #define tr(container, it) \ for(typeof(container.begin() it = container.begin(); it != container.end(); it++) using namespace std; int inline code(char x) { if (x == 'A') return 0; if (x == 'C') return 1; if (x == 'T') return 2; if (x == 'G') return 3; cout << "fatal error" << endl; return -1; } int main(){ string a, b; cin >> a >> b; int n = a.length(); int* counts = new int[16](); for (int i =0; i < n;i++) { int ac=code(a[i]),bc=code(b[i]); if (ac!=bc) counts[ac+4*bc]++; } int cost=0; for (int i=0;i<4;i++) { for (int j=i+1;j<4;j++) { int rem=min(counts[i+4*j],counts[j+4*i]); cost+=rem; counts[i+4*j]-=rem; counts[j+4*i]-=rem; } } for (int i=0;i<4;i++) { for (int j=0;j<4;j++) { for (int k=0;k<4;k++) { if (i==j||j==k||i==k) continue; int rem=min(min(counts[i+4*j],counts[j+4*k]),counts[k+4*i]); cost+=2*rem; counts[i+4*j]-=rem; counts[j+4*k]-=rem; counts[k+4*i]-=rem; } } } for (int i=0;i<16;i++) { if (counts[i]!=0) { cost+=3*counts[i]; break; } } cout << cost << endl; return 0; }