#include <bits/stdc++.h>
using namespace std;
long long ans;
int z;
bool bisa, ktmu;
string st1, st2;
vector<int> data[26];
int main() {
  cin >> st1 >> st2;
  for (int i = 0; i < st1.size(); i++) data[(int)st1[i] - 'a'].push_back(i);
  ans = 1;
  bisa = true;
  if (data[(int)st2[0] - 'a'].size())
    z = data[(int)st2[0] - 'a'][0];
  else
    bisa = false;
  if (bisa)
    for (int i = 1; i < st2.size(); i++)
      if (data[(int)st2[i] - 'a'].size()) {
        ktmu = false;
        for (int j = 0; j < data[(int)st2[i] - 'a'].size(); j++)
          if (z < data[(int)st2[i] - 'a'][j]) {
            z = data[(int)st2[i] - 'a'][j];
            ktmu = true;
            break;
          }
        if (!ktmu) {
          ans++;
          z = data[(int)st2[i] - 'a'][0];
        }
      } else {
        bisa = false;
        break;
      }
  if (!bisa)
    printf("-1\n");
  else
    cout << ans << endl;
}
