#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;
}
