def sgn(x):
	if x < 0:
		return -1
	elif x > 0:
		return 1
	else:
		return 0

def give(index, add):
	global count, arr
	if sgn(arr[index]) == -add:
		count += 1
	arr[index] += add

def orient(x):
	global arr
	return sgn(arr[x[0]]) == x[1]

def tri(src):
	global arr, count, trans
	x = trans[src[:2]]
	y = trans[src[1:]]
	z = trans[src[2]+src[0]]
	if orient(x) and orient(y) and orient(z):
		take = min(abs(arr[x[0]]), abs(arr[y[0]]), abs(arr[z[0]]))
		count += 2 * take
		arr[x[0]] -= take * x[1]
		arr[y[0]] -= take * y[1]
		arr[z[0]] -= take * z[1]

count = 0

pairs = ["AC", "AG", "AT", "CG", "CT", "GT"]
trans = {pairs[s]:(s,1) for s in range(6)}
trans.update({pairs[s][::-1]:(s,-1) for s in range(6)})

arr = [0] * 6

A = input()
B = input()

i = 0
while i < len(A):
	if A[i] != B[i]:
		give(*trans[A[i]+B[i]])
	i += 1

#print(arr, count)

triplets = ["ACG", "AGC", "ACT", "ATC", "AGT", "ATG", "CGT", "CTG"]
for t in triplets:
	tri(t)

#
#print(arr)

amount = -1
i = 0
while i < 6:
	if arr[i] != 0:
		amount = abs(arr[i])
		break
	i += 1
if amount != -1:
	count += 3 * amount

print(count)

