#include static char P[1000004]; static char Q[1000004]; static long long R[4][4]; static int genei(char c) { if (c == 'A') return 0; if (c == 'C') return 1; if (c == 'G') return 2; return 3; } static long long min(long long x, long long y) { return x < y ? x : y; } static long long cycle2(int x, int y) { long long v = min(R[x][y], R[y][x]); R[x][y] -= v; R[y][x] -= v; return v; } static long long cycle3(int x, int y, int z) { long long v = min(min(R[x][y], R[y][z]), R[z][x]); R[x][y] -= v; R[y][z] -= v; R[z][x] -= v; return v; } static long long cycle4(int x, int y, int z, int w) { long long v = min(min(R[x][y], R[y][z]), min(R[z][w], R[w][x])); R[x][y] -= v; R[y][z] -= v; R[z][w] -= v; R[w][x] -= v; return v; } int main() { int i = 0, j = 0, k = 0; long long r = 0; scanf("%s %s", P, Q); for (; P[i] && Q[i]; i++) { int p = genei(P[i]); int q = genei(Q[i]); if (p != q) R[p][q]++; } for (i = 0; i < 4; i++) { for (j = 0; j < 4; j++) { if (i != j) r += cycle2(i, j); } } for (i = 0; i < 4; i++) { for (j = 0; j < 4; j++) { if (i == j) continue; for (k = 0; k < 4; k++) { if (i != k && j != k) r += 2 * cycle3(i, j, k); } } } for (i = 0; i < 4; i++) { for (j = 0; j < 4; j++) { if (i == j) continue; for (k = 0; k < 4; k++) { if (i != k && j != k) r += 3 * cycle4(i, j, k, 6-i-j-k); } } } printf("%lld\n", r); return 0; }