func_code_string: #include <bits/stdc++.h>   using namespace std;   int main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     string s;     string s1;     cin >> s >> s1;     map<char, int> m;     m.insert(make_pair( a , 1));     m.insert(make_pair( b , 2));     m.insert(make_pair( c , 3));     m.insert(make_pair( d , 4));     m.insert(make_pair( e , 5));     m.insert(make_pair( f , 6));     m.insert(make_pair( g , 7));     m.insert(make_pair( h , 8));     m.insert(make_pair( i , 9));     m.insert(make_pair( j , 10));     m.insert(make_pair( k , 11));     m.insert(make_pair( l , 12));     m.insert(make_pair( m , 13));     m.insert(make_pair( n , 14));     m.insert(make_pair( o , 15));     m.insert(make_pair( p , 16));     m.insert(make_pair( q , 17));     m.insert(make_pair( r , 18));     m.insert(make_pair( s , 19));     m.insert(make_pair( t , 20));     m.insert(make_pair( u , 21));     m.insert(make_pair( v , 22));     m.insert(make_pair( w , 23));     m.insert(make_pair( x , 24));     m.insert(make_pair( y , 25));     m.insert(make_pair( z , 26));     int cnt1[27];     memset(cnt1, 0, sizeof(cnt1));     for (int i = 0; i < s.length(); i++) {       cnt1[m.find(s[i])->second]++;     }     int count1 = 0;     int cnt2[27];     memset(cnt2, 0, sizeof(cnt2));     for (int i = 0; i < s1.length(); i++) {       if (cnt1[m.find(s1[i])->second] == 0) {         cout << -1 << endl;         return 0;       }       cnt2[m.find(s1[i])->second]++;     }     for (int i = 1; i <= 26; i++) {       if (cnt2[i] > cnt1[i])         count1 += cnt1[i];       else if (cnt2[i] <= cnt1[i])         count1 += cnt2[i];     }     cout << count1 << endl;     return 0;   }   