#include <bits/stdc++.h>
using namespace std;
set<int> a[26];
char t[1000010], s[100010];
int main() {
  scanf("%s%s", s, t);
  for (int i = 0; s[i]; i++) {
    a[s[i] - 'a'].insert(i);
  }
  int len = -1, ans = 1;
  for (int i = 0; t[i]; i++) {
    if (a[t[i] - 'a'].empty()) {
      printf("-1\n");
      return 0;
    }
    if (a[t[i] - 'a'].upper_bound(len) == a[t[i] - 'a'].end()) {
      len = -1;
      ans++;
    }
    len = *a[t[i] - 'a'].upper_bound(len);
  }
  printf("%d\n", ans);
}
