#include <bits/stdc++.h>
using namespace std;
char a[10005];
char b[1000005];
int la, lb;
vector<int> posl[200];
int main() {
  cin >> a;
  cin >> b;
  la = strlen(a);
  lb = strlen(b);
  for (int i = 0; i < la; i++) posl[a[i]].push_back(i);
  int pu = la;
  int resp = 0;
  bool sol = true;
  for (int i = 0; i < lb && sol; i++) {
    if (!posl[b[i]].size())
      sol = false;
    else {
      if (pu >= posl[b[i]][posl[b[i]].size() - 1])
        resp++, pu = posl[b[i]][0];
      else {
        int iz = 0, de = posl[b[i]].size() - 1, mid;
        while (de - iz > 3) {
          mid = (iz + de) / 2;
          if (posl[b[i]][mid] > pu)
            de = mid;
          else
            iz = mid;
        }
        while (posl[b[i]][iz] <= pu) iz++;
        pu = posl[b[i]][iz];
      }
    }
  }
  if (sol)
    cout << resp;
  else
    cout << "-1";
  return 0;
}
