#include<bits/stdc++.h>
using namespace std;
#define VI vector<int>
#define PII pair<int, int>
#define VPI vector<PII>
#define mp make_pair
#define eb emplace_back
#define pb push_back
#define st first
#define nd second
#define endl '\n'
#define debug(x) cerr << #x << " " << x << endl;
#define ll long long

//#define int ll

const int N = 100 + 7;
const int M = 4;
const int inf = 1e9 + 7;

string s, t;

int n;

map<char, int>m;

int dp[N][N];

int res;

void solve(){
	cin >> s >> t;
	
	n = s.size();
	
	m['A'] = 0;
	m['C'] = 1;
	m['G'] = 2;
	m['T'] = 3;
	
	for(int i = 0; i < n; i++){
		dp[m[s[i]]][m[t[i]]] += 1;
	}
	
	for(int mask = 0; mask < (1<<M); mask++){
		VI tmp;
		
		for(int i = 0; i < M; i++){
			if (mask & (1<<i)){
				tmp.pb(i);
			}
		}
		
		if (tmp.size() > 1){
			do{
				int ile = inf;
			
				for(int i = 0; i < (int)tmp.size(); i++){
					ile = min(ile, dp[tmp[i]][tmp[(i + 1) % tmp.size()]]);
				}
				
				res += ile * (tmp.size() - 1);
				
				for(int i = 0; i < (int)tmp.size(); i++){
					dp[tmp[i]][tmp[(i + 1) % tmp.size()]] -= ile;
				}
				
			}while(next_permutation(tmp.begin(), tmp.end()));
		}
	}
	
	cout << res;
}

int32_t main(){
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	
	int test = 1;
	
	while(test--){
		solve();
	}
	
	return 0;
}


